Kubernetes 集群搭建(下)

简介:

早安~~不知道昨天的文章各位有没有去尝试操作一下呢?没有的话建议再去看一下昨天的文章,这样可以更好的理解今天的文章! 今天的信息量比较大,大家可能会比较懵,建议多看几遍呀~ 下面开始今天的内容~
安装
yum安装需要的组件,我这里指定了具体的版本,我用的版本比较老,不过如果你是第一次用,问题不是很大,如果是大佬的话就不要喷我了~~~

yum -y install kubeadm-1.11.1
yum -y install kubectl-1.11.1
yum -y install kubelet-1.11.1
yum -y install kubernetes-cni-0.6.0
yum -y install docker-ce-17.03.0.ce-1.el7.centos
设置docker启动

systemctl enable docker
systemctl start docker
systemctl enable kubelet.service
systemctl start kubelet
这里就是比较艰难的部分了,网上的处理办法大同小异在这里给大家写一下我用的。

kubernetes是Google的,他的镜像托管在Google云上,国内下载比较坎坷,到这个地址去下载https://github.com/anjia0532/gcr.io_mirror 脚本在这里

vim pullimages.sh #这里指定了具体的版本,如果你不是这个版本的需要修改脚本呀~~

!/bin/bash

images=(kube-proxy-amd64:v1.11.1 kube-scheduler-amd64:v1.11.1 kube-controller-manager-amd64:v1.11.1
kube-apiserver-amd64:v1.11.1 etcd-amd64:3.2.18 coredns:1.1.3 pause:3.1 )
for imageName in ${images[@]} ; do
docker pull anjia0532/google-containers.$imageName
docker tag anjia0532/google-containers.$imageName k8s.gcr.io/$imageName
docker rmi anjia0532/google-containers.$imageName
done
其实呢kubeadm是可以一键部署Master节点的,不过呢为了给大家演示一下集群的搭建,我在这里写了一个kubeadm.yaml

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
controllerManagerExtraArgs:
horizontal-pod-autoscaler-use-rest-clients: "true"
horizontal-pod-autoscaler-sync-period: "10s"
node-monitor-grace-period: "10s"
apiServerExtraArgs:
runtime-config: "api/all=true"
kubernetesVersion: "v1.11.1"
这里将horizontal-pod-autoscaler-use-rest-clients: "true",这意味者,将来部署的kube-controlller-manger能够使用自定义资源进行自动水平拓展。

部署kunernetes Master节点

kubeadm init --config kubeadm.yaml
这里会生成一大串代码,我摘录一部分放在这里供大家参考

[init] using Kubernetes version: v1.11.1
[preflight] running pre-flight checks
.................
.................
.................
Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of machines by running the following on each node
as root:

kubeadm join 192.168.72.132:6443 --token q1nck1.4znr09ayrj6xpsdw --discovery-token-ca-cert-hash sha256:095e199243fad6ee350beb9869942f54ee4074cd5bcef1222a2cca712b8b4878
这个kubeadm join命令是来给Master节点添加工作节点的命令,当然我这里是单节点肯定是用不上了,不过我还是想给大家解释一下,你们知道就好。

配置安全配置文件的存放目录,这个在上述的代码中有提到,各位可以详细看一下

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
为啥要写这个呢?原因是kubernetes集群默认需要加密方式访问,这几条命令的作用在于将刚部署集群的配置文件放在当前用户的.kube目录下啊,kubectl默认使用这个目录下的授权信息访问kubernetes集群。

查看节点状态

[root@localhost yum.repos.d]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
localhost.localdomain NotReady master 6m v1.11.1
我这里部署的状态是NotReady,是因为我没有安装网络组件

安装网络插件

kubectl apply -f https://git.io/weave-kube-1.6
部署完成后我们可以通过kubectl重新检查Pod状态

[root@localhost yum.repos.d]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-78fcdf6894-8w8dx 1/1 Running 0 11m
coredns-78fcdf6894-w9sk2 1/1 Running 0 11m
etcd-localhost.localdomain 1/1 Running 0 10m
kube-apiserver-localhost.localdomain 1/1 Running 0 10m
kube-controller-manager-localhost.localdomain 1/1 Running 0 10m
kube-proxy-cpxmx 1/1 Running 0 11m
kube-scheduler-localhost.localdomain 1/1 Running 0 10m
weave-net-pt2l7 2/2 Running 0 23s
这里可以看到我部署的Pod都启动成功了,如果你也能看到这些,那么恭喜你,至此kubernetes Master节点部署完成咯

最后提一下,kubernetes也有可视化插件的,看起来还不错,由于这篇文章写的还是比较早的,今天才整理完毕,虚拟机被我给删掉了,没留截图,这里就不在赘述了,大家有兴趣可以自己操作一下,或者大家实在想看,可以留言呐!!呼声高的话我可以特意出一个文章给大家的~~~

最后马上过年了,提前祝各位鼠年行大运,工作顺利,吃嘛嘛香,身体倍儿棒,阖家欢乐~~

然后时间有限,小编能力有限,文章可能存在疏漏,各位大佬轻喷~~~~

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
Kubernetes Ubuntu 应用服务中间件
在Ubuntu22.04 LTS上搭建Kubernetes集群
在Ubuntu22.04.4上安装Kubernetes v1.28.7,步骤超详细
323 1
在Ubuntu22.04 LTS上搭建Kubernetes集群
|
2月前
|
Kubernetes 安全 Docker
在 K8s 集群中创建 DERP 服务器
在 K8s 集群中创建 DERP 服务器
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
20天前
|
数据库 存储 监控
什么是 SAP HANA 内存数据库 的 Delta Storage
什么是 SAP HANA 内存数据库 的 Delta Storage
16 0
什么是 SAP HANA 内存数据库 的 Delta Storage
|
1天前
|
存储 运维 Kubernetes
Kubernetes 集群的持续性能优化实践
【4月更文挑战第22天】在动态且复杂的微服务架构中,确保 Kubernetes 集群的高性能运行是至关重要的。本文将深入探讨针对 Kubernetes 集群性能优化的策略与实践,从节点资源配置、网络优化到应用部署模式等多个维度展开,旨在为运维工程师提供一套系统的性能调优方法论。通过实际案例分析与经验总结,读者可以掌握持续优化 Kubernetes 集群性能的有效手段,以适应不断变化的业务需求和技术挑战。
13 4
|
9天前
|
Kubernetes 搜索推荐 Docker
使用 kubeadm 部署 Kubernetes 集群(二)k8s环境安装
使用 kubeadm 部署 Kubernetes 集群(二)k8s环境安装
47 17
|
22天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
15 0
|
22天前
|
Kubernetes 安全 网络安全
搭建k8s集群kubeadm搭建Kubernetes二进制搭建Kubernetes集群
搭建k8s集群kubeadm搭建Kubernetes二进制搭建Kubernetes集群
104 0
|
29天前
|
Kubernetes Cloud Native Docker
【云原生】kubeadm快速搭建K8s集群Kubernetes1.19.0
Kubernetes 是一个开源平台,用于管理容器化工作负载和服务,提供声明式配置和自动化。源自 Google 的大规模运维经验,它拥有广泛的生态支持。本文档详细介绍了 Kubernetes 集群的搭建过程,包括服务器配置、Docker 和 Kubernetes 组件的安装,以及 Master 和 Node 的部署。此外,还提到了使用 Calico 作为 CNI 网络插件,并提供了集群功能的测试步骤。
217 0
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践
【2月更文挑战第31天】 在微服务架构日益普及的今天,容器编排工具如Kubernetes已成为部署、管理和扩展容器化应用的关键平台。然而,随着集群规模的扩大和业务复杂性的增加,如何有效监控集群状态、及时响应系统异常,以及管理海量日志信息成为了运维人员面临的重要挑战。本文将深入探讨 Kubernetes 集群监控的最佳实践和日志管理的高效策略,旨在为运维团队提供一套系统的解决思路和操作指南。
27 0