k8s部署问题

一、初始化问题
前几年做项目的时候搭过没问题,现在想在虚拟机里弄起来复习下,结果初始化的时候跑到这就卡
image

ls -la /etc/kubernetes/manifests/看了下
image
sudo journalctl -u kubelet --since "5 minutes ago" | grep -E "(static|pod|manifest)"看下日志
image
大概是kubelet拉镜像,结果每次都超时失败
我记得设置了镜像,但是可能containerd没用这个配置,要修改 /etc/containerd/config.toml,把sandbox_image改为阿里云镜像源
sudo sed -i 's|sandbox_image = "registry.k8s.io/pause:3.9"|sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"|g' /etc/containerd/config.toml
重启下containerd sudo systemctl restart containerd
确认下是否生效sudo grep sandbox_image /etc/containerd/config.toml
如下图就行
image

之前失败太多次了,每次都要reset并且手动删些文件,干脆写成shell脚本,然后chmod +x initkube.sh。每次重来就./initkube.sh运行

点击查看代码
#!/bin/bash
sudo kubeadm reset -f
echo "OK"
sudo rm -rf /etc/kubernetes/
echo "OK"
sudo rm -rf /var/lib/kubelet/
echo "OK"
sudo kubeadm init --config kubeadm-config.yaml --v=5
echo "OK"

image

终于行了
image

部署参考VMware下安装Ubuntu系统部署k8s集群(保姆级教程)

二、加入集群问题
node1如下图报错kubelet
image

大概API Server 没有启动
sudo systemctl status kubelet查下状态,不正常
image
查日志sudo journalctl -xeu kubelet --since "5 minutes ago" --no-pager | grep -E "(error|failed|unable|fatal|invalid|refused|timeout)" -i

kubelet 无法找到 /etc/kubernetes/bootstrap-kubelet.conf
image

……回去看了下master,节点没就绪
image
journalctl -u kubelet -f --since "5 minutes ago" | grep -E "(error|failed|unable)" -i看kubelet日志
image
看master的podkubectl get pods -A
image
master 节点没有 CNI 网络插件,kubelet无法初始化网络,所以节点状态一直是 NotReady。
搞个flannel
wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
sed -i 's|docker.io/flannel/|registry.aliyuncs.com/google_containers/|g' kube-flannel.yml
kubectl apply -f kube-flannel.yml
看下状态kubectl get pods -n kube-system | grep flannel
看STATUS应该是在慢慢拉镜像,需要等一段时间
image

最后在node上执行kubeadm join 192.168.0.102:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:8b3972bf2b5348848d8566c7890fc797d101be9e023f36209c34496850c0781d

三、etcd不监听masterIP自己一直销毁重启
试了下sudo ss -tlnp | grep 2379没在监听,但是sudo vim /etc/kubernetes/manifests/etcd.yaml进去,--listen-client-urls--advertise-client-urls都写明了是指向masterIP的
image
sudo crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock ps -a | grep etcd看下有没有在运行
*可以sudo crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock inspect <容器ID> | grep -A 10 -E "(exitCode|Error|message)"查查日志

一般配置没问题就是资源问题了,之前碰到过,排查出来是硬盘太小了……

posted @ 2026-07-04 14:21  CCLluvia  阅读(8)  评论(0)    收藏  举报