Master节点是Kubernetes集群的控制中心,需确保kube-apiserver
、kube-controller-manager
、kube-scheduler
等关键组件正常运行。在Master节点上执行以下命令:
sudo systemctl status kube-apiserver
sudo systemctl status kube-controller-manager
sudo systemctl status kube-scheduler
若组件状态显示为active (running)
,则说明Master节点部署成功。
Node节点通过kubelet
(节点代理)和kube-proxy
(网络代理)接入集群。在每个Node节点上执行:
sudo systemctl status kubelet
sudo systemctl status kube-proxy
若状态均为active (running)
,则Node节点已成功加入集群。
使用kubectl
获取集群基本信息,确认集群配置正确:
kubectl cluster-info
输出应包含集群的API Server地址(如Kubernetes master is running at https://<master-ip>:6443
)。
列出集群中所有节点的状态,确认节点是否处于Ready
状态(表示节点可接收Pod调度):
kubectl get nodes
或添加-o wide
参数查看更详细的节点信息(如内网IP、操作系统、容器运行时):
kubectl get nodes -o wide
若所有节点的STATUS
列均为Ready
,则节点部署正常。
Pod是Kubernetes的最小部署单元,需确保其处于Running
状态且READY
列(就绪容器数/总容器数)符合预期:
kubectl get pods --all-namespaces # 查看所有命名空间的Pod
kubectl get pods -n <namespace> # 查看指定命名空间的Pod
若Pod状态为Pending
(挂起)、CrashLoopBackOff
(崩溃循环)或Error
(错误),需进一步排查。
若Pod状态异常,使用以下命令获取详细原因:
kubectl describe pod <pod-name> -n <namespace> # 查看Pod的事件(如调度失败、镜像拉取错误)
kubectl logs <pod-name> -n <namespace> # 查看Pod内容器的日志
kubectl logs <pod-name> -n <namespace> --previous # 查看容器上次运行的日志(适用于崩溃场景)
这些命令能帮助定位Pod无法运行的具体原因(如配置错误、依赖缺失)。
Kubernetes需要网络插件(如Calico、Flannel)实现Pod间通信。以Calico为例,检查其Pod状态:
kubectl get pods -n kube-system | grep calico
若所有Calico Pod的状态均为Running
,则网络插件部署成功。
selector
匹配Pod标签):kubectl get svc --all-namespaces
kubectl describe svc <service-name> -n <namespace>
kubectl get ingress -n <namespace>
kubectl get pods -n <ingress-controller-namespace> # 如Traefik、Nginx Ingress控制器
确认Ingress控制器Pod处于Running
状态,且Ingress资源配置正确。通过kubectl get events
查看集群近期事件(如Pod调度、节点加入、资源不足警告),快速定位异常:
kubectl get events --sort-by='.metadata.creationTimestamp' # 按时间排序,查看最新事件
事件信息能帮助理解集群状态变化的原因。