Kubernetes部署集群碰到的问题解决

小结

Kubernetes部署集群碰到与Containerd,Metallb和Coredns相关的问题,进行了解决。

问题

问题一,Coredns一直在Pending的状态,如下:

[root@Master]# kubectl get pods -o wide -A
NAMESPACE      NAME                             READY   STATUS    RESTARTS   AGE     IP                NODE     NOMINATED NODE   READINESS GATES
kube-flannel   kube-flannel-ds-fr92w            1/1     Running   0          26s     192.168.238.130   master   <none>           <none>
kube-system    coredns-5d78c9869d-22jmb         0/1     Pending   0          7m46s   <none>            <none>   <none>           <none>
kube-system    coredns-5d78c9869d-nqwq7         0/1     Pending   0          7m46s   <none>            <none>   <none>           <none>

问题二,Kubernetes的节点一直处于NotReady状态,如下:

[root@Master]# kubectl get nodes
NAME     STATUS     ROLES           AGE     VERSION
master   NotReady   control-plane   2m29s   v1.27.3
node1    NotReady   <none>          68s     v1.27.3
node2    NotReady   <none>          41s     v1.27.3

问题三,部署metallb报找不到资源的问题,如下:

Error from server (NotFound): error when creating "metallb-deployments/address-pool.yml": the server could not find the requested resource (post ipaddresspools.metallb.io)
Error from server (NotFound): error when creating "metallb-deployments/address-pool.yml": the server could not find the requested resource (post l2advertisements.metallb.io)

解决

问题一解决,这里Coredns一直在Pending的状态,需要在Master节点上初始化Kubernetes集群之后,加入其它Node1和Node2之前,配置网络实例,如下:

kubeadm reset --force #重置
rm -rf /etc/cni/net.d/ #按提示要求删除
kubeadm init --pod-network-cidr=10.244.0.0/16 #初始化
kubectl apply -f kube-flannel.yml #配置网络实例
kubeadm join 192.168.238.130:6443 --token s5wfmf.lyohmfasblsxgmzn \
> --discovery-token-ca-cert-hash sha256:693bf9030a37358c8e7efa0380e7bdfc3af55d89139c97f273b2f14631868036 #分别 在Node1和Node2上执行,添加Node1和Node2到集群

注意以上顺序,问题可以解决:

[root@Master]# kubectl get pods -o wide -A
NAMESPACE        NAME                             READY   STATUS    RESTARTS   AGE     IP                NODE     NOMINATED NODE   READINESS GATES
kube-flannel     kube-flannel-ds-6b446            1/1     Running   0          9m29s   192.168.238.132   node2    <none>           <none>
kube-flannel     kube-flannel-ds-hh8qh            1/1     Running   0          10m     192.168.238.130   master   <none>           <none>
kube-flannel     kube-flannel-ds-znq5w            1/1     Running   0          9m56s   192.168.238.131   node1    <none>           <none>
kube-system      coredns-5d78c9869d-q6tt6         1/1     Running   0          11m     10.244.0.6        master   <none>           <none>
kube-system      coredns-5d78c9869d-wwgfm         1/1     Running   0          11m     10.244.0.7        master   <none>           <none>

问题二解决,相当简单直接,需要重启containerd的服务:

[root@Node2 ~]# systemctl restart containerd.service
[root@Node1 ~]# systemctl restart containerd.service

问题解决,如下:

[root@Master]# kubectl get nodes
NAME     STATUS   ROLES           AGE    VERSION
master   Ready    control-plane   5d5h   v1.27.3
node1    Ready    <none>          5d5h   v1.27.3
node2    Ready    <none>          5d5h   v1.27.3
[root@Master kubernetes]# 

问题三解决,需要注意部署顺序,如下:

[root@Master]# kubectl apply -f metallb-native.yml 
[root@Master]# kubectl apply -f address-pool.yml

先前顺序搞反了,解决结果如下:

[root@Master]# kubectl get pods -A | tail -6
metallb-system         controller-595f88d88f-94qbc                             1/1     Running   0              5d5h
metallb-system         speaker-5dx5d                                           1/1     Running   1 (53m ago)    5d5h
metallb-system         speaker-8pj7d                                           1/1     Running   1 (53m ago)    5d5h
metallb-system         speaker-sqdc5                                           1/1     Running   0              5d5h
nginx-ingress          nginx-ingress-2tplt                                     1/1     Running   0              4d13h
nginx-ingress          nginx-ingress-82khx                                     1/1     Running   0              4d13h

参考

Github: InternalError (failed calling webhook “ipaddresspoolvalidationwebhook.metallb.io”) #1540
Stackoverflow: Kubernetes coredns readiness probe failed

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值