debian

怎样检查Debian K8s部署状态

小樊
37
2025-10-10 15:33:40
栏目: 智能运维

1. 检查Master节点核心组件状态

Master节点是Kubernetes集群的控制中心,需确保kube-apiserverkube-controller-managerkube-scheduler等关键组件正常运行。在Master节点上执行以下命令:

sudo systemctl status kube-apiserver
sudo systemctl status kube-controller-manager
sudo systemctl status kube-scheduler

若组件状态显示为active (running),则说明Master节点部署成功。

2. 检查Node节点代理组件状态

Node节点通过kubelet(节点代理)和kube-proxy(网络代理)接入集群。在每个Node节点上执行:

sudo systemctl status kubelet
sudo systemctl status kube-proxy

若状态均为active (running),则Node节点已成功加入集群。

3. 查看集群整体信息

使用kubectl获取集群基本信息,确认集群配置正确:

kubectl cluster-info

输出应包含集群的API Server地址(如Kubernetes master is running at https://<master-ip>:6443)。

4. 检查节点可用性

列出集群中所有节点的状态,确认节点是否处于Ready状态(表示节点可接收Pod调度):

kubectl get nodes

或添加-o wide参数查看更详细的节点信息(如内网IP、操作系统、容器运行时):

kubectl get nodes -o wide

若所有节点的STATUS列均为Ready,则节点部署正常。

5. 检查Pod运行状态

Pod是Kubernetes的最小部署单元,需确保其处于Running状态且READY列(就绪容器数/总容器数)符合预期:

kubectl get pods --all-namespaces  # 查看所有命名空间的Pod
kubectl get pods -n <namespace>    # 查看指定命名空间的Pod

若Pod状态为Pending(挂起)、CrashLoopBackOff(崩溃循环)或Error(错误),需进一步排查。

6. 查看Pod详细信息与日志

若Pod状态异常,使用以下命令获取详细原因:

kubectl describe pod <pod-name> -n <namespace>  # 查看Pod的事件(如调度失败、镜像拉取错误)
kubectl logs <pod-name> -n <namespace>          # 查看Pod内容器的日志
kubectl logs <pod-name> -n <namespace> --previous  # 查看容器上次运行的日志(适用于崩溃场景)

这些命令能帮助定位Pod无法运行的具体原因(如配置错误、依赖缺失)。

7. 验证网络插件状态

Kubernetes需要网络插件(如Calico、Flannel)实现Pod间通信。以Calico为例,检查其Pod状态:

kubectl get pods -n kube-system | grep calico

若所有Calico Pod的状态均为Running,则网络插件部署成功。

8. 检查Service与Ingress状态

9. 查看集群事件

通过kubectl get events查看集群近期事件(如Pod调度、节点加入、资源不足警告),快速定位异常:

kubectl get events --sort-by='.metadata.creationTimestamp'  # 按时间排序,查看最新事件

事件信息能帮助理解集群状态变化的原因。

0
看了该问题的人还看了