启动后,也打印了启动成功的日志,但是启动几分钟后摸清奇妙挂了

这个启动完成后后面还需要继续操作。
1执行框框里面的命令,一条条执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
2子节点连接加入集群(非必要)
kubeadm join 192.168.129.135:6443 --token 7hu7i6.nizlnla03wkhoyi7 \
--discovery-token-ca-cert-hash sha256:e6054efaa154392ec5c3c8f416a64c9d59b4f3ecc64d2cd4afe0c71d11f6c790
检查是否正常
查看节点信息,有输出说明现在运行正常(但是不代表后面不会挂)
kubectl get node

加载网络组件(必须的,不然有的pod容器会卡主或者一直重启)
方法1:
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/tigera-operator.yaml
curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/custom-resources.yaml -O
kubectl create -f custom-resources.yaml
方法2:(我使用的,需要外网,国内的也有,可以自己找)
curl https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml -O
kubectl apply -f calico.yaml

这个网络组件是和coredns-相关的容器启动相关的,下面查看pod可看到这个容器
大概要等几分钟,启动完成后上面的节点信息会从notready 变成ready 。
查看pod信息,里面有很多k8s需要的镜像
kubectl get pod -A

完全启动后应该就是图上那样的
但是这里有个天坑,可以看到右边那个重启次数,很多镜像重启了很多次,原因各种各样的,下面是我遇到的
问题1:pod反复重启
原因1:可能是磁盘空间不够了,利用率直接拉满了100
可以查看剩余空间,执行下面的命令其中一个看看就行
df -h
free -m

可以看到使用率是79,那是因为我清理了,前面一直报错的时候我看到使用率到了100,容器反复启动又给强制下线
问题2:pod的calico-kube-controllers 容器报错 ImagePullBackOff

查看失败原因,查看失败信息
describe pod -n kube-system calico-kube-controllers-7ddc4f45bc-mw25n

错误信息
Failed to pull image "docker.io/calico/kube-controllers:v3.26.1": failed to pull and unpack image "docker.io/calico/kube-controllers:v3.26.1": failed to resolve image: failed to do request: Head "https://registry-1.docker.io/v2/calico/kube-controllers/manifests/v3.26.1": read tcp 192.168.129.135:48900->100.62.192.175:443: read: connection reset by peer
可以看到大概率是网络问题,可能是地址是外网的我的vpn又断开了导致的
解决:
上面加载网络组件的时候,是先把配置文件拉到本地再加载的,这个本地文件里面是资源地址是国外的,我们改成国内的
sed -i 's|docker.io/calico/|docker.m.daocloud.io/calico/|g' calico.yaml
然后重新执行加载
kubectl apply -f calico.yaml
等一两分钟再看这个calico-kube-controllers容器是否启动
问题3:(建议每个节点都执行一次)子节点无法连接,或者主节点报错container runtime is not running
这个网上有解释containerd启动有问题,下面直接给操作命令
删文件重新写
sudo rm /etc/containerd/config.toml
sudo containerd config default | sudo tee /etc/containerd/config.toml
重启
sudo systemctl restart containerd
查看是否启动正常
sudo ctr plugin ls | grep cri
状态是ok就正常
