温馨提示×

如何验证Debian k8s装好

小樊
40
2026-10-05 06:11:07
栏目: 智能运维

在 Debian 上部署完 Kubernetes(k8s)后,可以从系统层、集群层、节点层、网络层、工作负载层逐步验证是否“装好”。下面给你一套实用验证清单,适合 kubeadm 方式安装的集群(其他发行版思路类似)。


一、基础环境验证(节点级别)

1. 查看 kube 组件进程

systemctl status kubelet

✅ 应为 active (running)

2. 查看关键命令是否存在

kubectl version --client
which kubeadm kubelet kubectl

二、集群状态验证(最重要)

3. 查看节点状态

kubectl get nodes

✅ 所有节点状态应为 Ready

示例:

NAME       STATUS   ROLES           AGE   VERSION
master     Ready    control-plane   10m   v1.29.2
node1      Ready    <none>          8m    v1.29.2

❌ 若 NotReady,检查:

journalctl -u kubelet -f
kubectl describe node <node>

三、核心组件验证(系统 Pod)

4. 查看 kube-system 组件

kubectl get pods -n kube-system

✅ 应看到以下组件且状态为 Running:

  • kube-apiserver-*
  • kube-controller-manager-*
  • kube-scheduler-*
  • etcd-*
  • kube-proxy-*
  • coredns-*(或你用的 DNS)

四、网络验证(最容易被忽略)

5. 检查 CNI 插件

kubectl get pods -n kube-system | grep -E "flannel|calico|cilium"

✅ 网络插件 Pod 必须 Running

6. 测试 DNS

kubectl run test-dns --rm -it --image=busybox --restart=Never -- sh
nslookup kubernetes.default

✅ 能解析说明 DNS + 网络正常


五、实战验证(跑一个应用)

7. 部署测试 Pod

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort

8. 查看状态

kubectl get pods
kubectl get svc

9. 访问测试

curl http://<NodeIP>:<NodePort>

✅ 返回 nginx 页面说明集群可用


六、控制平面高可用(如有多 master)

kubectl get endpoints kube-controller-manager -n kube-system
kubectl get endpoints kube-scheduler -n kube-system

七、常见“装好但其实没好”的问题

现象 可能原因
节点 NotReady CNI 没装
DNS 不通 CoreDNS 没起
Pod 一直 Pending 资源不足 / 污点
kubectl 无权限 kubeconfig 没配置

八、一句话总结

✅ 真正装好的标志:

kubectl get nodes 全 Ready + kube-system 全 Running + 能跑 Pod + 能访问服务


如果你愿意,可以贴一下:

  • Debian 版本
  • k8s 安装方式(kubeadm / 二进制 / 脚本)
  • kubectl get nodes 和 kubectl get pods -A 的输出

我可以帮你精准判断哪里没装好。

0 踩