Kubernetes是一个开源的容器编排平台,用于管理和自动化部署容器化的应用程序。Kubeadm是Kubernetes官方社区推出的一个用于快速部署Kubernetes集群的工具,它可以帮助我们简化集群部署的过程。
在开始之前,我们需要满足以下几个条件:
- 3台虚拟机,操作系统 CentOS7.7-86_x64(我用的是VMWare起的虚拟机)
- 硬件配置:2核4G 100G
- 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点(如果无法访问外网参考:juejin.cn/post/…)
- 禁止swap分区
以下是我本地的虚机IP配置
在准备好的3台虚机上执行以下命令,初始化环境
讯享网
Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。
讯享网
配置docker源为国内源
docker 的Registry Mirros如下表示配置成功 
讯享网
讯享网
在192.168.91.137(Master)执行。 --apiserver-advertise-address={Master节点ip} 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址。
讯享网
Master节点出现以下提示信息,表示安装成功 
安装成功后,按照提示将kube config 文件复制到指定目录,如下:
在192.168.91.138和192.168.91.139(Node)执行。
向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:
讯享网
在k8snode1虚机上执行kubeadm join将k8snode1加入到集群



在k8snode2虚机上执行kubeadm join将k8snode2加入到集群


默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,操作如下:
做完以上5步后,发现所有节点都是 NotReady 状态,是因为Kubernetes集群需要一个网络插件来提供容器之间的网络通信。我们可以选择安装Flannel插件,执行以下命令来部署:
讯享网
出现以下说明网络插件安装成功,需要等一会网络插件相关pod才能起来 
过几分钟后,执行 kubectl get pods -A,发现在namespace kube-flannel 下网络插件的pod已经处于 Running 状态 
再次执行 kubectl get nodes 查看nodes状态,发现3个节点的状态已经从 NotReady 变成了 Ready,说明集群节点准备就绪,可以正常创建pod等 
在Kubernetes集群中创建一个pod,验证是否正常运行:
如下图,可以看到 nginx pod已经正常运行,而且创建的 svc 对外暴漏的端口是 31874
使用3台虚拟机的IP加上端口访问nginx服务 Master虚机IP+端口
k8snode1虚机IP+端口

k82node2虚机IP+端口 
说明你可以使用任何一个Node节点的IP地址和NodePort来访问Nginx应用。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/175694.html