K8S报错异常锦集(持续更新)

K8S报错异常锦集(持续更新)

更新镜像没反应 k8s组件异常

①故障现象:使用脚本更新pod服务镜像,pod无变化,状态没更新;

更新镜像:无变化
kubectl set image deployment/em-api em-api=192.168.90.10/zhufuc/em-api:v1.0-20201110100058
pod状态:
em-api-86855df489-hmvnr   1/1     Running             0          16m   172.18.94.8   k8s-n5   <none>           <none>

解决思路:检查脚本,检查私有仓库,检查步骤,查看日志,查看k8s组件

问题:k8s组件状态异常,controller-manager 异常

经排查脚本没问题,私有仓库没问题,查看日志

journalctl -f -u kubelet
Nov 10 10:11:22 k8s-m1 kubelet[32270]: E1110 10:11:22.165336   32270 kuberuntime_sandbox.go:65] CreatePodSandbox for pod "traefik-ingress-controller-jjss4_kube-system(63eee933-933a-11e9-928a-fefcfe274f71)" failed: rpc error: code = Unknown desc = failed to start sandbox container for pod "traefik-ingress-controller-jjss4": Error response from daemon: driver failed programming external connectivity on endpoint k8s_POD_traefik-ingress-controller-jjss4_kube-system_63eee933-933a-11e9-928a-fefcfe274f71_17529857 (ec7dbca09838629f1e4825175f4be3819723cb1984c9b7d00c2ed499b834fa5a):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.18.88.14:8080 ! -i docker0: iptables: No chain/target/match by that name.
Nov 10 10:11:22 k8s-m1 kubelet[32270]: (exit status 1))
Nov 10 10:11:22 k8s-m1 kubelet[32270]: E1110 10:11:22.165351   32270 kuberuntime_manager.go:662] createPodSandbox for pod "traefik-ingress-controller-jjss4_kube-system(63eee933-933a-11e9-928a-fefcfe274f71)" failed: rpc error: code = Unknown desc = failed to start sandbox container for pod "traefik-ingress-controller-jjss4": Error response from daemon: driver failed programming external connectivity on endpoint k8s_POD_traefik-ingress-controller-jjss4_kube-system_63eee933-933a-11e9-928a-fefcfe274f71_17529857 (ec7dbca09838629f1e4825175f4be3819723cb1984c9b7d00c2ed499b834fa5a):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.18.88.14:8080 ! -i docker0: iptables: No chain/target/match by that name.
Nov 10 10:11:22 k8s-m1 kubelet[32270]: (exit status 1))
Nov 10 10:11:22 k8s-m1 kubelet[32270]: E1110 10:11:22.165417   32270 pod_workers.go:190] Error syncing pod 63eee933-933a-11e9-928a-fefcfe274f71 ("traefik-ingress-controller-jjss4_kube-system(63eee933-933a-11e9-928a-fefcfe274f71)"), skipping: failed to "CreatePodSandbox" for "traefik-ingress-controller-jjss4_kube-system(63eee933-933a-11e9-928a-fefcfe274f71)" with CreatePodSandboxError: "CreatePodSandbox for pod \"traefik-ingress-controller-jjss4_kube-system(63eee933-933a-11e9-928a-fefcfe274f71)\" failed: rpc error: code = Unknown desc = failed to start sandbox container for pod \"traefik-ingress-controller-jjss4\": Error response from daemon: driver failed programming external connectivity on endpoint k8s_POD_traefik-ingress-controller-jjss4_kube-system_63eee933-933a-11e9-928a-fefcfe274f71_17529857 (ec7dbca09838629f1e4825175f4be3819723cb1984c9b7d00c2ed499b834fa5a):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.18.88.14:8080 ! -i docker0: iptables: No chain/target/match by that name.\n (exit status 1))"
Nov 10 10:11:22 k8s-m1 kubelet[32270]: I1110 10:11:22.165608   32270 server.go:459] Event(v1.ObjectReference{Kind:"Pod", Namespace:"kube-system", Name:"traefik-ingress-controller-jjss4", UID:"63eee933-933a-11e9-928a-fefcfe274f71", APIVersion:"v1", ResourceVersion:"13081364", FieldPath:""}): type: 'Warning' reason: 'FailedCreatePodSandBox' Failed create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container for pod "traefik-ingress-controller-jjss4": Error response from daemon: driver failed programming external connectivity on endpoint k8s_POD_traefik-ingress-controller-jjss4_kube-system_63eee933-933a-11e9-928a-fefcfe274f71_17529857 (ec7dbca09838629f1e4825175f4be3819723cb1984c9b7d00c2ed499b834fa5a):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8080 -j DNAT --to-destination 172.18.88.14:8080 ! -i docker0: iptables: No chain/target/match by that name.

可以看到controller是有问题的,使用命令查看一下k8s的组件

kubectl get cs
 NAME                 STATUS      MESSAGE                                                                                                                                  ERROR
  
  scheduler            Healthy     ok
  
  controller-manager   Unhealthy   Get http://127.0.0.1:10252/healthz: net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x15\x03\x01\x00\x02\x02"
  
  etcd-1               Healthy     {"health":"true"}
  
  etcd-0               Healthy     {"health":"true"}
  
  etcd-2               Healthy     {"health":"true"}

确实是controller-manager问题
查看状态是否有报错信息,根据实际情况,我的直接重启一下就好了

systemctl status kube-controller-manager -l

systemctl restart kube-controller-manager 

测试:

组件状态:
[root@k8s-m1 script]# kubectl get cs
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok                  
scheduler            Healthy   ok                  
etcd-0               Healthy   {"health":"true"}   
etcd-1               Healthy   {"health":"true"}   
etcd-2               Healthy   {"health":"true"}   
更新镜像
kubectl set image deployment/em-api em-api=192.168.90.10/zhufuc/em-api:v1.0-20201110100058
pod状态:
em-api-7c7f76dcdc-kdr5c   0/1     ContainerCreating   0          0s    <none>        k8s-n5   <none>           <none>
em-api-86855df489-hmvnr   1/1     Running             0          16m   172.18.94.8   k8s-n5   <none>           <none>

成功解决!


k8s容器间无法通讯 网络出现问题

node01节点无法ping其他节点容器的IP,同样node01节点的容器也ping不通其他节点容器IP

示例:其他节点的容器去进行ping

node01无法通讯

在这里插入图片描述
用在node05的容器去ping在node02的容器IP和node01的容器IP
在这里插入图片描述

查看一下k8s的组件插件

kubectl get pods --all-namespaces

可以看到有的服务出现异常可以查看详情

kubectl describe pod -n kube-system  [服务名字]

在这里插入图片描述
把服务异常的pod都进行重启

kubectl delete pod -n kube-system kube-proxy-2mzcp

查看状态
在这里插入图片描述

测试

node01去ping其他容器的ip
在这里插入图片描述
成功


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101938.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • #Photoshop#_pdf文档解析失败

    #Photoshop#_pdf文档解析失败来源:导入AdobePhotoshop(.psd)图像AdobePhotoshop档案格式规格:https://www.adobe.com/devnet-apps/photoshop/fileformatashtml/#50577409_89817vs2017案例

  • 极光推送报错time_to_live value should be a non-negative integertime_to_live value should be a non-negativ

    极光推送报错time_to_live value should be a non-negative integertime_to_live value should be a non-negativ

    2021年11月10日
  • MySQL的HAVING用法「建议收藏」

    MySQL的HAVING用法「建议收藏」来自:https://blog.lmlyz.online/index/detail/id/59.htmlwhere、聚合函数、having在from后面的执行顺序:where>聚合函数(sum,min,max,avg,count)>having若须引入聚合函数来对groupby结果进行过滤则只能用having。(是先执行聚合函数还是先过滤然后比对我上面列出的执行顺序…

  • make wildcard_其在古文中的用法

    make wildcard_其在古文中的用法
    在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcardPATTERN…)。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符的展开和上一小节匹配通配符的区别。
    一般我们可以使用“$(wildcard*.c)”来获取工作

    2022年10月21日
  • 排序算法汇总总结

    排序算法汇总总结

  • 【组合数求模】 转自AekdyCoin

    【组合数求模】 转自AekdyCoin大家都在中学阶段学习了组合数的定义:这个表示的是从n个元素中选取m个元素的方案数。(PS.组合数求模似乎只用在信息学竞赛和ACM竞赛等计算机编程设计大赛中……,求在现实中的运用) 可以知道当n,m 取得比较大的时候,组合数可能很大很大(天文数字?无法度量?)例如C(100,50)=100891344545564193334812497256, 于是计算机的64

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号