`
m635674608
  • 浏览: 5027001 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

k8s 异常

 
阅读更多
 Error syncing pod, skipping: failed to "SetupNetwork" for "my-nginx-1948696469-ph11m_default" with SetupNetworkError: "Failed to setup network for pod \"my-nginx-1948696469-ph11m_default(3700d74a-cc12-11e6-8c42-00163e1001d7)\" using network plugins \"cni\": no IP addresses available in network: cbr0; Skipping pod"

 这已经将10.244.1.x段的所有ip占满,自然没有available的IP可供新pod使用了。至于为何占满,这个原因尚不明朗。下面两个open issue与这个问题相关:

https://github.com/containernetworking/cni/issues/306

https://github.com/kubernetes/kubernetes/issues/21656

进入到/var/lib/cni/networks/cbr0目录下,执行下面命令可以释放那些可能是kubelet leak的IP资源:

for hash in $(tail -n +1 * | grep '^[A-Za-z0-9]*$' | cut -c 1-8); do if [ -z $(docker ps -a | grep $hash | awk '{print $1}') ]; then grep -irl $hash ./; fi; done | xargs rm

执行后,目录下的文件列表变成了:

ls -l
total 32
drw-r--r-- 2 root root 12288 Dec 27 17:11 ./
drw-r--r-- 3 root root  4096 Dec 27 13:52 ../
-rw-r--r-- 1 root root    64 Dec 27 17:11 10.244.1.2
-rw-r--r-- 1 root root    64 Dec 27 17:11 10.244.1.3
-rw-r--r-- 1 root root    64 Dec 27 17:11 10.244.1.4
-rw-r--r-- 1 root root    10 Dec 27 17:11 last_reserved_ip

不过pod仍然处于失败状态,但这次失败的原因又发生了变化:

Events:
  FirstSeen    LastSeen    Count    From                    SubObjectPath    Type        Reason        Message
  ---------    --------    -----    ----                    -------------    --------    ------        -------
  23s        23s        1    {default-scheduler }                    Normal        Scheduled    Successfully assigned my-nginx-1948696469-7p4nn to iz2ze39jeyizepdxhwqci6z
  22s        1s        22    {kubelet iz2ze39jeyizepdxhwqci6z}            Warning        FailedSync    Error syncing pod, skipping: failed to "SetupNetwork" for "my-nginx-1948696469-7p4nn_default" with SetupNetworkError: "Failed to setup network for pod \"my-nginx-1948696469-7p4nn_default(a40fe652-cc14-11e6-8c42-00163e1001d7)\" using network plugins \"cni\": \"cni0\" already has an IP address different from 10.244.1.1/24; Skipping pod"

而/var/lib/cni/networks/cbr0目录下的文件又开始迅速增加!问题陷入僵局。

5、flannel vxlan不通,后端换udp,仍然不通

折腾到这里,基本筋疲力尽了。于是在两个node上执行kubeadm reset,准备重新来过。

kubeadm reset后,之前flannel创建的bridge device cni0和网口设备flannel.1依然健在。为了保证环境彻底恢复到初始状态,我们可以通过下面命令删除这两个设备:

# ifconfig  cni0 down
# brctl delbr cni0
# ip link delete flannel.1

有了前面几个问题的“磨炼”后,重新init和join的k8s cluster显得格外顺利。这次minion node没有再出现什么异常。

 

http://www.tuicool.com/articles/rYRzY3q

分享到:
评论

相关推荐

    k8s异常处理.docx

    总之,处理k8s异常需要理解其核心组件的工作原理,正确执行重置和初始化操作,并保持集群组件的良好状态。同时,了解与之相关的其他技术,如Hadoop,有助于全面理解数据中心的运作。通过不断学习和实践,可以更好地...

    k8s(kubernetes)常见故障处理总结-详细笔记文档总结

    一、k8s 之连接异常(集群故障) 在 k8s 集群中,pod 是最小的调度单元,每个 pod 代表集群上正在运行的一个进程。pod 中可以封装一个或多个容器,容器共享存储、网络等资源。常见的故障有: 1. k8s 资源配置错误...

    promethues(普罗米修斯)监控k8s集群-详细文档

    通过这个详尽的步骤,你将能够构建一个完整的 k8s 集群监控系统,不仅能够实时查看集群状态,还能在出现异常时及时收到通知,从而提升系统的可维护性和稳定性。记得定期审查和更新监控策略,以适应 k8s 集群的变化和...

    K8S监控模板,用于k8S集群Pod监控

    - 6417-K8S资源状态监控.json:可能包含了对K8S资源状态的监控配置,包括Pod的运行状态、副本集的状态、服务的状态等,用于跟踪和报警异常情况。 - 9276-主机基础监控.json:可能专注于节点级别的监控,如主机的...

    k8s部署redis所需要的配置文件

    在Kubernetes(k8s)环境中部署Redis集群是一项常见的任务,尤其当需要高可用性和数据持久化时。这里我们将深入探讨如何使用Redis集群,并结合Ceph作为持久化存储的配置方法。 首先,Redis是一个高性能的键值存储...

    青云高效运维k8s集群.pdf

    文档中提到的常见故障包括Pod状态异常、容器网络问题、节点异常、基础网络异常和k8s组件异常等。为了解决这些故障,需要按顺序进行排查,比如检查Pod状态是否正常、容器网络是否正常、DNS和kube-proxy服务是否正常、...

    k8s的Java客户端的帮助文档,从官网代码生成的JavaDoc

    当API调用失败时,K8s Java客户端会抛出`ApiException`,包含错误代码和详细信息,开发者需要适当地捕获和处理这些异常。 以上只是Kubernetes Java客户端部分核心功能的介绍,实际上,它还支持更复杂的操作,如...

    k8s知识点概要.docx

    1. 自我修复能力:当节点出现故障或容器运行异常时,K8s能够自动重启、替换和重新部署容器,保持预期的副本数量,同时避免健康检查失败的容器处理客户端请求,保证服务连续性。 2. 弹性伸缩:K8s支持手动或自动根据...

    K8s讲义(md版).rar

    - **健康检查**:K8s通过容器的Liveness和Readiness探针来监控应用的健康状态,异常时会重启容器或重新调度。 - **日志与监控**:K8s提供了统一的日志收集机制,并可通过Prometheus等工具进行集群级别的性能监控。 ...

    在k8s中集成大数据服务

    #### 五、K8s使用过程中的常见异常 在使用K8s的过程中可能会遇到各种问题,比如: - **Pod启动失败**:这可能是由于容器镜像拉取错误、权限问题等原因造成的。 - **网络连接问题**:容器间的网络通信故障也可能...

    K8S主机Prometheus监控blackbox-exporter(kubernetes_sd_files)资源清单及镜像文件

    在IT领域,特别是容器编排和云原生技术中,Kubernetes(K8S)扮演着核心角色。Prometheus作为一款流行的开源监控系统和时间序列数据库,被广泛用于收集和分析K8S集群中的各种指标。为了实现全面的监控,包括对外部...

    k8s集群部署文档.docx

    在搭建Kubernetes(k8s)集群时,对于初学者来说,了解并遵循详细的部署步骤至关重要。本篇文档将介绍如何使用二进制方式部署Kubernetes v1.13.4高可用(HA)集群。这种部署方式适用于那些希望通过手动配置来深入...

    k8s宕机pod自动迁移方案

    k8s宕机pod自动迁移方案 Kubernetes 是一个流行的容器编排系统,它提供了强大的容错和高可用性功能。但是,当节点出现异常时,Pod 的自动迁移是保证高可用性的关键。下面将详细介绍 k8s 宕机 Pod 自动迁移方案。 1...

    ST升级脚本,k8s环境升级系统脚本

    在IT行业中,升级脚本是系统维护和更新过程中的重要工具,特别是在容器化环境中,如Kubernetes(k8s)集群。"ST升级脚本,k8s环境升级系统脚本"这个标题揭示了我们讨论的主题是针对Kubernetes环境的一个自动化升级...

    k8s全自动离线按照下载链接.txt

    k8s全自动离线部署(高可用),百度下载连接(永久有效,且免费) 当前可选安装版本-------------------------------------------------------------------------------------------------------------------------...

    4-k8s部署之Node节点1

    在Kubernetes(k8s)集群的构建过程中,Node节点是不可或缺的一部分,它们承载了Pods,即实际运行应用的工作负载。本篇文章将详细介绍如何将一个Node子节点加入到已经存在的k8s集群中,以及如何进行状态检查和管理。...

    K8s排错思路图.pdf

    《K8s排错思路图.pdf》提供了一套系统的方法来排查和解决Kubernetes(K8s)集群中出现的网络问题。文档涵盖了Pod网络异常的分类、常用的网络排查工具、具体的排查思路和流程模型,以及CNI(容器网络接口)异常排查的...

Global site tag (gtag.js) - Google Analytics