kube-proxy的pod状态为containercreating处理方法和k8s创建pod状态为containercreating的处理方法

[root@worker-165 kubelet]# systemctl status kubelet

● kubelet.service - kubelet: The Kubernetes Node Agent

Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)

Drop-In: /usr/lib/systemd/system/kubelet.service.d

└─10-kubeadm.conf

Active: active (running) since 一 2021-11-29 16:56:51 CST; 1h 31min ago

Docs: https://kubernetes.io/docs/

Main PID: 9321 (kubelet)

Tasks: 16

Memory: 47.6M

CGroup: /system.slice/kubelet.service

└─9321 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --network-plugin=cni --pod-infra-container-image=regis…

11月 29 17:57:06 worker-165 kubelet[9321]: time=“2021-11-29T17:57:06+08:00” level=info msg=“About to acquire host-wide IPAM lock.” source=“ipam_plugin.go:348”

11月 29 17:57:06 worker-165 kubelet[9321]: time=“2021-11-29T17:57:06+08:00” level=info msg=“Acquired host-wide IPAM lock.” source=“ipam_plugin.go:363”

11月 29 17:57:06 worker-165 kubelet[9321]: 2021-11-29 17:57:06.931 [INFO][47594] ipam.go 1410: Releasing all IPs with handle ‘k8s-pod-network.6d4fb99e7785f3b4018584c3e3a799b097e3b5b54ebe93131fd5cf5a8a8e5cae’

11月 29 17:57:06 worker-165 kubelet[9321]: 2021-11-29 17:57:06.943 [WARNING][47594] ipam_plugin.go 424: Asked to release address but it doesn’t exist. Ignoring ContainerID="6d4fb99e7785f3b4018584c3e3a799b097e3b5b54ebe93131fd5cf5a8…

11月 29 17:57:06 worker-165 kubelet[9321]: 2021-11-29 17:57:06.943 [INFO][47594] ipam_plugin.go 435: Releasing address using workloadID ContainerID=“6d4fb99e7785f3b4018584c3e3a799b097e3b5b54ebe93131fd5cf5a8a8e5cae” HandleID="k8s-p…

11月 29 17:57:06 worker-165 kubelet[9321]: 2021-11-29 17:57:06.943 [INFO][47594] ipam.go 1410: Releasing all IPs with handle ‘kube-system.calico-kube-controllers-78d6f96c7b-tqxp4’

11月 29 17:57:06 worker-165 kubelet[9321]: time=“2021-11-29T17:57:06+08:00” level=info msg=“Released host-wide IPAM lock.” source=“ipam_plugin.go:369”

11月 29 17:57:06 worker-165 kubelet[9321]: 2021-11-29 17:57:06.949 [INFO][47586] k8s.go 576: Teardown processing complete. ContainerID=“6d4fb99e7785f3b4018584c3e3a799b097e3b5b54ebe93131fd5cf5a8a8e5cae”

11月 29 17:57:07 worker-165 kubelet[9321]: I1129 17:57:07.119675 9321 pod_container_deletor.go:79] “Container not found in pod’s containers” containerID=“d6d7faa88f9cc1a5645540c9035a1cb0a472583c1d6ac23c9293bee77eb0f573”

11月 29 17:57:07 worker-165 kubelet[9321]: I1129 17:57:07.119765 9321 pod_container_deletor.go:79] “Container not found in pod’s containers” containerID=“ecab3db290102ab0d7a54510f30f957c0edc759cce0f176f2f40231ca3024b5d”

Hint: Some lines were ellipsized, use -l to show in full.

[root@worker-165 kubelet]#

kube-proxy的pod状态为containercreating说明及处理

======================================================================================================

原因


  • 出现这种问题肯定是,你的环境是内网,并且你导入init镜像的时候没有导入到containercreating状态这台主机上,如下,我就是没有导入init所需的镜像,导致这个报错的【外网环境不会出这种问题,是因为外网会自动下载所需镜像】

  • kube-proxy的pod状态是containercreating,原因只有一个,就是缺少镜像。

  • 我已经处理好了,所以现在环境一切正常,下面是异常状态信息【我手动改的,但是有问题以后,就是下面样子】

[root@master1-163 ~]# kubectl get pods -n kube-system -owide

NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES

calico-kube-controllers-78d6f96c7b-nwbmt 1/1 Running 0 29m 10.244.139.67 worker-165

calico-node-nh977 1/1 Running 0 29m 192.168.59.162 master2-162

calico-node-s89tx 1/1 Running 0 29m 192.168.59.163 master1-163

calico-node-vt5dn 1/1 Running 0 29m 192.168.59.165 worker-165

coredns-545d6fc579-6l9xs 1/1 Running 0 6h19m 10.244.139.66 worker-165

coredns-545d6fc579-mrm2w 1/1 Running 0 6h19m 10.244.139.65 worker-165

kube-apiserver-master1-163 1/1 Running 1 6h19m 192.168.59.163 master1-163

kube-apiserver-master2-162 1/1 Running 1 5h20m 192.168.59.162 master2-162

kube-controller-manager-master1-163 1/1 Running 1 6h19m 192.168.59.163 master1-163

kube-controller-manager-master2-162 1/1 Running 1 5h20m 192.168.59.162 master2-162

kube-proxy-kp8p6 1/1 Running 1 5h20m 192.168.59.162 master2-162

kube-proxy-kqg72 1/1 Running 1 6h19m 192.168.59.163 master1-163

kube-proxy-nftgv 0/1 containercreating 0 88m 192.168.59.165 worker-165

kube-scheduler-master1-163 1/1 Running 1 6h19m 192.168.59.163 master1-163

kube-scheduler-master2-162 1/1 Running 1 5h20m 192.168.59.162 master2-162

[root@master1-163 ~]#

处理


  • 我在初始化集群的时候,只把所需镜像给master导入了,worker节点并没有导入相关镜像,所以解决方法就是,在 kube-proxy的pod状态为containercreating的所属主机上导入相关镜像即可

  • 如下,就是一套初始化master集群的时候所需的所有镜像

更多信息可以看我这篇博客哈:

【kubernetes】k8s集群的搭建安装详细说明【创建集群、加入集群、踢出集群、重置集群…】【含离线搭建方法】

看下面这部分内容

在这里插入图片描述

[root@worker-165 kubelet]# docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

calico/node v3.19.1 c4d75af7e098 6 months ago 168MB

calico/pod2daemon-flexvol v3.19.1 5660150975fb 6 months ago 21.7MB

calico/cni v3.19.1 5749e8b276f9 6 months ago 146MB

calico/kube-controllers v3.19.1 5d3d5ddc8605 6 months ago 60.6MB

registry.aliyuncs.com/google_containers/kube-apiserver v1.21.1 771ffcf9ca63 6 months ago 126MB

registry.aliyuncs.com/google_containers/kube-controller-manager v1.21.1 e16544fd47b0 6 months ago 120MB

registry.aliyuncs.com/google_containers/kube-proxy v1.21.1 4359e752b596 6 months ago 131MB

registry.aliyuncs.com/google_containers/kube-scheduler v1.21.1 a4183b88f6e6 6 months ago 50.6MB

registry.aliyuncs.com/google_containers/kube-apiserver v1.21.0 4d217480042e 7 months ago 126MB

registry.aliyuncs.com/google_containers/kube-proxy v1.21.0 38ddd85fe90e 7 months ago 122MB

registry.aliyuncs.com/google_containers/kube-controller-manager v1.21.0 09708983cc37 7 months ago 120MB

registry.aliyuncs.com/google_containers/kube-scheduler v1.21.0 62ad3129eca8 7 months ago 50.6MB

registry.aliyuncs.com/google_containers/pause 3.4.1 0f8457a4c2ec 10 months ago 683kB

registry.aliyuncs.com/google_containers/coredns/coredns v1.8.0 296a6d5035e2 13 months ago 42.5MB

registry.aliyuncs.com/google_containers/etcd 3.4.13-0 0369cf4303ff 15 months ago 253MB

registry.cn-hangzhou.aliyuncs.com/kube-iamges/dashboard v2.0.0-beta8 eb51a3597525 24 months ago 90.8MB

registry.cn-hangzhou.aliyuncs.com/kube-iamges/metrics-scraper v1.0.1 709901356c11 2 years ago 40.1MB

[root@worker-165 kubelet]#

学会用kubectl describe pod定位具体异常问题

==============================================================================================

  • 注意,凡事pod状态问题有关,我们都可以使用这个方法来确定问题,这里面有报错信息,基本上可以获取所有pod异常问题的,

  • 也就是说,如果k8s有问题,我们可以先看k8s日志,方式如下

先用kubectl get pods --all-namespaces -owide查看问题pod,然后用kubectl describe pod pod_name -n kube-system来查看日志,一般情况下,我们都是可以通过这个方式来获取到报错原因的【一波情况下哈,并非绝对】

  • 如下示例

[root@master1-163 ~]# kubectl get pods --all-namespaces -owide

NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES

kube-system calico-kube-controllers-76d885cfc8-qct94 0/1 ContainerCreating 0 3s worker-165

kube-system calico-node-7kz7f 0/1 Init:RunContainerError 0 3s 192.168.59.165 worker-165

kube-system calico-node-gj8xr 0/1 Init:RunContainerError 0 3s 192.168.59.162 master2-162

kube-system calico-node-kqftj 0/1 Init:RunContainerError 0 3s 192.168.59.163 master1-163

kube-system coredns-545d6fc579-6l9xs 1/1 Running 0 5h46m 10.244.139.66 worker-165

kube-system coredns-545d6fc579-mrm2w 1/1 Running 0 5h46m 10.244.139.65 worker-165

kube-system kube-apiserver-master1-163 1/1 Running 1 5h47m 192.168.59.163 master1-163

kube-system kube-apiserver-master2-162 1/1 Running 1 4h47m 192.168.59.162 master2-162

kube-system kube-controller-manager-master1-163 1/1 Running 1 5h47m 192.168.59.163 master1-163

kube-system kube-controller-manager-master2-162 1/1 Running 1 4h47m 192.168.59.162 master2-162

kube-system kube-proxy-kp8p6 1/1 Running 1 4h47m 192.168.59.162 master2-162

kube-system kube-proxy-kqg72 1/1 Running 1 5h46m 192.168.59.163 master1-163

kube-system kube-proxy-nftgv 1/1 Running 0 56m 192.168.59.165 worker-165

kube-system kube-scheduler-master1-163 1/1 Running 1 5h47m 192.168.59.163 master1-163

kube-system kube-scheduler-master2-162 1/1 Running 1 4h47m 192.168.59.162 master2-162

[root@master1-163 ~]#

[root@master1-163 ~]# kubectl describe pod calico-node-gj8xr -n kube-system

Name: calico-node-gj8xr

Namespace: kube-system

Priority: 2000001000

Priority Class Name: system-node-critical

Node: master2-162/192.168.59.162

Start Time: Mon, 29 Nov 2021 17:53:22 +0800

Labels: controller-revision-hash=c4646b5c6

k8s-app=calico-node

pod-template-generation=1

Annotations: scheduler.alpha.kubernetes.io/critical-pod:

Status: Pending

IP: 192.168.59.162

IPs:

IP: 192.168.59.162

Controlled By: DaemonSet/calico-node

Init Containers:

upgrade-ipam:

Container ID: docker://298fecda934316eb4fa7e0e0e93beb1bd818c357343afa3de198468ec84cfe33

Image: calico/cni:v3.19.1

Image ID: docker://sha256:5749e8b276f9b5aea2683d8a0d59afd05a2be478f5092fbaadc4715f4db76e5a

Port:

Host Port:

Command:

/opt/cni/bin/calico-ipam

-upgrade

State: Terminated

Reason: Completed

Exit Code: 0

Started: Mon, 29 Nov 2021 17:53:23 +0800

Finished: Mon, 29 Nov 2021 17:53:23 +0800

Ready: True

Restart Count: 0

Environment:

KUBERNETES_NODE_NAME: (v1:spec.nodeName)

CALICO_NETWORKING_BACKEND: <set to the key ‘calico_backend’ of config map ‘calico-config’> Optional: false

Mounts:

/host/opt/cni/bin from cni-bin-dir (rw)

/var/lib/cni/networks from host-local-net-dir (rw)

/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-xz2nm (ro)

install-cni:

Container ID: docker://1389feae63f96f81eba7175cd71597e7456a7180e9b71f99265083822fad1303

Image: calico/cni:v3.19.1

Image ID: docker://sha256:5749e8b276f9b5aea2683d8a0d59afd05a2be478f5092fbaadc4715f4db76e5a

Port:

Host Port:

Command:

/install-cni.sh

State: Waiting

Reason: CrashLoopBackOff

Last State: Terminated

Reason: ContainerCannotRun

Message: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: “/install-cni.sh”: stat /install-cni.sh: no such file or directory: unknown

Exit Code: 127

Started: Mon, 29 Nov 2021 17:54:07 +0800

Finished: Mon, 29 Nov 2021 17:54:07 +0800

Ready: False

Restart Count: 3

Environment:

CNI_CONF_NAME: 10-calico.conflist

CNI_NETWORK_CONFIG: <set to the key ‘cni_network_config’ of config map ‘calico-config’> Optional: false

KUBERNETES_NODE_NAME: (v1:spec.nodeName)

CNI_MTU: <set to the key ‘veth_mtu’ of config map ‘calico-config’> Optional: false

SLEEP: false

Mounts:

/host/etc/cni/net.d from cni-net-dir (rw)

/host/opt/cni/bin from cni-bin-dir (rw)

/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-xz2nm (ro)

flexvol-driver:

Container ID:

Image: calico/pod2daemon-flexvol:v3.19.1

Image ID:

Port:

Host Port:

State: Waiting

Reason: PodInitializing

Ready: False

Restart Count: 0

Environment:

Mounts:

/host/driver from flexvol-driver-host (rw)

/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-xz2nm (ro)

Containers:

calico-node:

Container ID:

Image: calico/node:v3.19.1

Image ID:

Port:

Host Port:

State: Waiting

Reason: PodInitializing

Ready: False

Restart Count: 0

Requests:

cpu: 250m

Liveness: exec [/bin/calico-node -felix-live -bird-live] delay=10s timeout=1s period=10s #success=1 #failure=6

Readiness: exec [/bin/calico-node -felix-ready -bird-ready] delay=0s timeout=1s period=10s #success=1 #failure=3

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

分享一套我整理的面试干货,这份文档结合了我多年的面试官经验,站在面试官的角度来告诉你,面试官提的那些问题他最想听到你给他的回答是什么,分享出来帮助那些对前途感到迷茫的朋友。

面试经验技巧篇
  • 经验技巧1 如何巧妙地回答面试官的问题
  • 经验技巧2 如何回答技术性的问题
  • 经验技巧3 如何回答非技术性问题
  • 经验技巧4 如何回答快速估算类问题
  • 经验技巧5 如何回答算法设计问题
  • 经验技巧6 如何回答系统设计题
  • 经验技巧7 如何解决求职中的时间冲突问题
  • 经验技巧8 如果面试问题曾经遇见过,是否要告知面试官
  • 经验技巧9 在被企业拒绝后是否可以再申请
  • 经验技巧10 如何应对自己不会回答的问题
  • 经验技巧11 如何应对面试官的“激将法”语言
  • 经验技巧12 如何处理与面试官持不同观点这个问题
  • 经验技巧13 什么是职场暗语

面试真题篇
  • 真题详解1 某知名互联网下载服务提供商软件工程师笔试题
  • 真题详解2 某知名社交平台软件工程师笔试题
  • 真题详解3 某知名安全软件服务提供商软件工程师笔试题
  • 真题详解4 某知名互联网金融企业软件工程师笔试题
  • 真题详解5 某知名搜索引擎提供商软件工程师笔试题
  • 真题详解6 某初创公司软件工程师笔试题
  • 真题详解7 某知名游戏软件开发公司软件工程师笔试题
  • 真题详解8 某知名电子商务公司软件工程师笔试题
  • 真题详解9 某顶级生活消费类网站软件工程师笔试题
  • 真题详解10 某知名门户网站软件工程师笔试题
  • 真题详解11 某知名互联网金融企业软件工程师笔试题
  • 真题详解12 国内某知名网络设备提供商软件工程师笔试题
  • 真题详解13 国内某顶级手机制造商软件工程师笔试题
  • 真题详解14 某顶级大数据综合服务提供商软件工程师笔试题
  • 真题详解15 某著名社交类上市公司软件工程师笔试题
  • 真题详解16 某知名互联网公司软件工程师笔试题
  • 真题详解17 某知名网络安全公司校园招聘技术类笔试题
  • 真题详解18 某知名互联网游戏公司校园招聘运维开发岗笔试题

资料整理不易,点个关注再走吧
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 真题详解8 某知名电子商务公司软件工程师笔试题
  • 真题详解9 某顶级生活消费类网站软件工程师笔试题
  • 真题详解10 某知名门户网站软件工程师笔试题
  • 真题详解11 某知名互联网金融企业软件工程师笔试题
  • 真题详解12 国内某知名网络设备提供商软件工程师笔试题
  • 真题详解13 国内某顶级手机制造商软件工程师笔试题
  • 真题详解14 某顶级大数据综合服务提供商软件工程师笔试题
  • 真题详解15 某著名社交类上市公司软件工程师笔试题
  • 真题详解16 某知名互联网公司软件工程师笔试题
  • 真题详解17 某知名网络安全公司校园招聘技术类笔试题
  • 真题详解18 某知名互联网游戏公司校园招聘运维开发岗笔试题

[外链图片转存中…(img-qXzkWCkG-1712643839618)]

资料整理不易,点个关注再走吧
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 25
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: containercreating状态表示正在创建容器。在Kubernetes中,当一个Pod被调度到一个节点上时,Kubernetes会在该节点上创建一个容器。当容器正在创建时,它的状态就是containercreating。在容器创建完成后,它的状态会变为running。如果容器创建失败,则会变为crashloopbackoff状态。 ### 回答2: containercreating状态是指在Kubernetes集群中创建容器时,该容器状态。当一个Pod创建时,Kubernetes会根据Pod中定义的容器规范尝试在节点上创建容器。在这个过程中,容器状态会从Pending状态转变为ContainerCreating状态ContainerCreating状态表示Kubernetes正在尝试在集群中的节点上创建容器。在此期间,Kubernetes会通过容器运行时(如Docker)创建并启动容器。该过程包括拉取容器镜像、设置容器的配置和环境变量等操作。如果容器镜像还没有被拉取到节点上,那么此过程可能会比较耗时。 在ContainerCreating状态下,Kubernetes会定期检查容器创建的进度。一旦容器创建成功并且运行起来,容器状态将会更新为Running状态。 如果容器ContainerCreating状态下就卡住了很久,可能会有以下一些可能原因: 1. 容器镜像过大,拉取时间较长; 2. 节点上资源不足,如内存或CPU不够; 3. 网络问题导致容器镜像无法从镜像仓库中拉取。 如果ContainerCreating状态长时间没有改变,可以通过Kubernetes的日志和事件检查工具来了解更多详细信息。在解决以上问题后,容器一般会成功创建并进入Running状态,或者进入其他状态以表示异常情况。 ### 回答3: "ContainerCreating"是KubernetesK8s)中一种容器状态,指的是正在创建容器的过程。 当我们在K8s集群中创建一个Pod时,K8s首先会为该Pod指定一个节点(Node),然后在该节点上创建容器。 在容器创建过程中,K8s会做以下一些操作: 1. 创建一个用于运行容器的Linux Namespace,这将隔离容器和其他进程的运行环境。 2. 创建一个Cgroup,用于限制容器对资源(如CPU、内存)的使用。 3. 挂载容器的文件系统,包括根文件系统和其他的数据卷。 4. 设置容器的网络,包括网络命名空间和网络配置。 5. 执行容器的启动命令,启动容器内的应用程序。 6. 监听容器状态,并将状态信息返回给K8s。 在所有这些操作完成之前,容器状态会显示为"ContainerCreating"。一旦容器创建成功并运行起来,状态将会变为"Running"。如果容器创建遇到了问题,状态可能会变为"Error"。 "ContainerCreating"状态通常只会持续很短的时间,具体时间取决于容器镜像的大小、节点的负载以及网络情况等因素。 总而言之,"ContainerCreating"状态表示容器正在创建过程中,稍后将会切换到"Running"状态以表示容器已成功创建并正在运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值