今天尝试在虚拟机安装k8s集群,用sleaos安装
1.安装sealos
# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos/latest/sealos && \
chmod +x sealos && mv sealos /usr/bin
# 下载离线资源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz
2.运行命令
sealos init --passwd 'Lins!@34' \
--master 192.168.56.5 --node 192.168.56.6 \
--pkg-url /root/kube1.21.1.tar.gz \
--version v1.21.1
3.启动后发现node一直是notready状态
[root@master01 1.8+]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 NotReady control-plane,master 9m11s v1.21.1
master02 NotReady <none> 8m38s v1.21.1
一开始以为是metrics-server没装导致,后一想不对,metrics-server只会导致kubectl top 失效
4.检查了kubelet 日志,一开始以为calico问题,检查了下calico运行正常
5月 12 18:43:11 master02 kubelet[9500]: E0512 18:43:11.339414 9500 kubelet.go:2211] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized"
5.试了网上一圈,比如重新生成ssl,最终解决重启了容器运行时进程,比如docker或者containerd,我这边是containerd,问题解决。记录下,其实还没明白什么原因。
[root@master01 1.8+]# systemctl restart containerd
[root@master01 1.8+]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 Ready control-plane,master 12m v1.21.1
master02 Ready <none> 12m v1.21.1