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
在这里插入图片描述
成功


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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何实现自定义类加载器_进阶课程

    如何实现自定义类加载器_进阶课程新建一个java文件,保存在相应的目录用cmd命令进入到world类的上级目录,运行javac命令,生成.class文件创建自己定义的classload类//继承ClassLoader类,重写findclass方法。publicclassMyClassloaderextendsClassLoader{privateStringpath;privateStringclassloaderName;publicMyClassloader(Str

    2025年9月22日
    7
  • cookie and Flashcookie

    cookie and Flashcookiecookie是浏览器相关的,在同一台电脑上用不同的浏览器访问网站cookie是带不过去的,不同。而每台机子只有一个Flash,所以只要同一台电脑上访问网站,Flashcookie是可以带过去的,是同一个。

    2022年7月14日
    15
  • targetSdk27 FileProvider 摄像和照相[通俗易懂]

    targetSdk27 FileProvider 摄像和照相[通俗易懂]推荐Github开源项目SelectImgAsWechath:https://github.com/SCCXYS/SelectImgAsWechat参考地址:AndroidFileProvider详细解析和踩坑指南开始以下,调用相机的代码出自开源项目SelectImgAsWechath。权限<!–拍照–><uses-permissionandroid:name=”android.permission.CAMERA”/><!

    2022年7月21日
    17
  • Oracle与Sql Server复制表结构和数据

    Oracle与Sql Server复制表结构和数据

    2022年1月10日
    53
  • 互联网测试面试题及答案(软件测试面试题及答案2019)

    很多软件测试工程师在面试互联网企业的时候都会遇到考官给的几道面试题,这也反应了测试工程师对企业的重要性,今天传智播客整理了一份2019年的互联网企业软件测试面试题,希望能帮助到大家。2019年互联网企业软件测试面试题(常考)1、什么是兼容性测试?答:兼容性测试是检查软件在不同软件平台,硬件平台上是否可以正常运行的测试。主要查看软件在不同操作系统、浏览器、数据库中运行是否正常。2、你能不能…

    2022年4月13日
    136
  • Mac版本NavicatPremium15 激活码【2021最新】

    (Mac版本NavicatPremium15 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~70…

    2022年3月26日
    142

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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