master节点操作
在master节点上初始化集群。
- 下载必备镜像。
1kubeadm config images pull
此过程若无报错则下载成功。
国内网络环境需要配置镜像仓,例如:
1kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
- 修改containerd镜像配置,根据拉取的镜像中pause的版本更改config.toml的配置,查看pause镜像版本
1crictl images以图1 镜像拉取信息中registry.aliyuncs.com/google_containers/pause:3.9为例:1sed -i 's|sandbox_image =.*|sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"|g' /etc/containerd/config.toml
- 重启Containerd。
1systemctl restart containerd
- 集群初始化。
1kubeadm init --pod-network-cidr=10.244.0.0/16
初始化成功后有如图2 集群初始化成功打印信息所示信息打印。
如果在下载镜像时配置了镜像仓,集群初始化也需要配置相同镜像仓,例如:
1kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers
需执行在图2 集群初始化成功打印信息中黄框信息命令配置集群,红框信息表示工作节点加入集群的token命令,请保存该段命令。
1 2 3 4
rm -rf $HOME/.kube mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
当在master节点上集群初始化失败后,需按照提示查找原因并进行重置,重置后重新执行初始化命令。重置命令如下。
1 2 3 4 5 6 7 8 9
kubeadm reset systemctl stop kubelet rm -rf /var/lib/cni/ rm -rf /var/lib/kubelet/* rm -rf /etc/cni/ ifconfig cni0 down ifconfig flannel.1 down ip link delete cni0 ip link delete flannel.1
- 启动kube-flannel网络插件。请参见视频流引擎获取DemoVideoEngine.tar.gz软件包,获取后将软件包上传至服务器的“/home/k8s”目录。
1 2 3 4
cd /home/k8s tar -xvf DemoVideoEngine.tar.gz cd /home/k8s/k8s/script kubectl apply -f kube-flannel.yml
- 查看集群状态。
- 查看当前节点的状态。
1kubectl get nodes -A -o wide
期望是此master节点的状态(STATUS)列是Ready,运行时(CONTAINER-RUNTIME)列是containerd://x.x.x。
- 查看pod状态。
1kubectl get pod -A -o wide
期望是所有的pod的状态(STATUS)列都是Running。
若查看当前节点的状态(STATUS)列是NotReady,及查看kubelet服务状态(systemctl status kubelet)时有明显报错(Network plugin returns error: cni plugin not initialized),此情况建议将集群重置并将服务器重启后重新初始化。
- 查看当前节点的状态。
父主题: 搭建k8s集群

