一、本文概述及主要术语
1.1 概述
本文基于 Pod 、Service 和 Ingress 三大模块进行划分,对于 Kubernetes 日常可能出现的故障问题,提供了较为具体的排查步骤,并附上相关解决方法或参考文献。
1.2 主要术语
-
Pod: Kubernetes 中创建和管理的、最小的可部署的计算单元。是一组(一个或多个) 容器;这些容器共享存储、网络、以及怎样运行这些容器的声明。
-
Port-forward: 通过端口转发映射本地端口到指定的应用端口。
-
Service: 一个 Kubernetes 的 Service 是一种抽象,它定义了一组 Pods 的逻辑集合和一个用于访问它们的策略 - 有时被称为微服务。
-
Ingress: 提供了集群外部到内部 HTTP 和 HTTPS 服务的路由通信,流量路由通过 Ingress 资源上定义的规则控制。
二、故障诊断流程
2.1 Pods 模块检查
-
以下流程若成功则继续往下进行,若失败则根据提示进行跳转。
2.1.1 检查是否有 pod 处于 PENDING 状态
-
kubectl get pods:如果有 pod 处于 PENDING 状态则往下看,否则前往 2.1.5 。
[root@10-186-65-37 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
myapp-deploy-55b54d55b8-5msx8 0/1 Pending 0 5m
2 kubectl describe pod <pod-name>:若正确输出指定的一个或多个资源的详细信息,则判断是否集群资源不足,若不足则进行拓展,否则前往 2.1.2 。
2.1.2 检查是否触发 ResourceQuota limit
-
kubectl describe resourcequota -n <namespace>:

2 如有限制则进行相应资源释放或拓展,参考:https://kubernetes.io/zh/docs/concepts/configuration/manage-resources-containers/#extended-resources
否则前往 2.1.3
2.1.3 检查是否有 PVC 处于 PENDING 状态
-
持久卷(PersistentVolume,PV)是集群中的一块存储,可以由管理员事先供应,或者使用存储类(Stor

本文提供了一套针对Kubernetes中Pod、Service和Ingress故障的诊断流程。从检查Pod的状态开始,如PENDING、RUNNING、CrashLoopBackOff等,到Service的Endpoints和Selector匹配,再到Ingress的配置和外部访问,每一步都给出了详细的排查步骤和可能的解决方案,旨在帮助用户解决集群操作中的常见问题。
最低0.47元/天 解锁文章
1049

被折叠的 条评论
为什么被折叠?



