K8s -- 搭建过程中经常遇到的问题

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

这个启动完成后后面还需要继续操作。

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就正常

相关推荐
慈云数据1 小时前
用 DSH 辅助部署一个网站监控平台:Uptime Kuma + Docker 实战
运维·docker·容器
大腾智能2 小时前
普通笔记本跑CAD,云原生和本地安装差在哪
云原生·国产cad·cad软件·云原生cad
螺蛳粉 螺蛳粉2 小时前
第 03 篇:为什么 K8s 的最小调度单元是 Pod 而不是容器:pause 容器与边车模式(底座认知 03)
docker·云原生·容器·kubernetes·etcd·运维排障·kube-apiserver
艾伦_耶格宇2 小时前
【kubernetes - 1.28版本】-9 K8S-dashbord可视化界面
云原生·容器·kubernetes
阿里云云原生17 小时前
Agent 数据飞轮平台的选型和实践
云原生
做运维的阿瑞18 小时前
云项目可观测性与成本治理:告警、日志、Dashboard 与预算标签
大数据·云原生·云计算·terraform
无人生还别怕19 小时前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
知已难寻19 小时前
01 · OpenStack的认证管理 Keystone
运维·服务器·云原生·云计算·openstack
分布式存储与RustFS20 小时前
模型权重散落在每台 GPU?用 RustFS 给 vLLM 做共享权重库
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准