08.验证集群功能

本文档使用 daemonset 验证 master 和 worker 节点是否工作正常。

检查节点状态

  1. $ kubectl get nodes
  2. NAME STATUS ROLES AGE VERSION
  3. m7-demo-136001 Ready <none> 30m v1.8.15
  4. m7-demo-136002 Ready <none> 27m v1.8.15
  5. m7-demo-136003 Ready <none> 27m v1.8.15

都为 Ready 时正常。

创建测试文件

  1. cat > nginx-ds.yml <<EOF
  2. apiVersion: v1
  3. kind: Service
  4. metadata:
  5. name: nginx-ds
  6. labels:
  7. app: nginx-ds
  8. spec:
  9. type: NodePort
  10. selector:
  11. app: nginx-ds
  12. ports:
  13. - name: http
  14. port: 80
  15. targetPort: 80
  16. ---
  17. apiVersion: extensions/v1beta1
  18. kind: DaemonSet
  19. metadata:
  20. name: nginx-ds
  21. labels:
  22. addonmanager.kubernetes.io/mode: Reconcile
  23. spec:
  24. template:
  25. metadata:
  26. labels:
  27. app: nginx-ds
  28. spec:
  29. containers:
  30. - name: my-nginx
  31. image: nginx:1.7.9
  32. ports:
  33. - containerPort: 80
  34. EOF
  35. kubectl create -f nginx-ds.yml

检查各 Node 上的 Pod IP 连通性

  1. $ kubectl get pods -o wide|grep nginx-ds
  2. nginx-ds-58xr7 1/1 Running 0 3m 172.30.96.2 m7-demo-136002
  3. nginx-ds-hd9gz 1/1 Running 0 3m 172.30.200.2 m7-demo-136003
  4. nginx-ds-v4mk7 1/1 Running 0 3m 172.30.112.2 m7-demo-136001

可见,nginx-ds 的 Pod IP 分别是 172.30.96.2172.30.200.2172.30.112.2,在所有 Node 上分别 ping 这三个 IP,看是否连通:

  1. source /opt/k8s/bin/environment.sh
  2. for node_ip in ${NODE_IPS[@]}
  3. do
  4. echo ">>> ${node_ip}"
  5. ssh ${node_ip} "ping -c 1 172.30.96.2"
  6. ssh ${node_ip} "ping -c 1 172.30.200.2"
  7. ssh ${node_ip} "ping -c 1 172.30.112.2"
  8. echo -e "\n\n"
  9. done

检查服务 IP 和端口可达性

  1. $ kubectl get svc |grep nginx-ds
  2. nginx-ds NodePort 10.254.212.157 <none> 80:32024/TCP 5m

可见:

  • Service Cluster IP:10.254.212.157
  • 服务端口:80
  • NodePort 端口:32024

在所有 Node 上 curl Service IP:

  1. source /opt/k8s/bin/environment.sh
  2. for node_ip in ${NODE_IPS[@]}
  3. do
  4. echo ">>> ${node_ip}"
  5. ssh ${node_ip} "curl 10.254.212.157"
  6. done

预期输出 nginx 欢迎页面内容。

检查服务的 NodePort 可达性

在所有 Node 上执行:

  1. source /opt/k8s/bin/environment.sh
  2. for node_ip in ${NODE_IPS[@]}
  3. do
  4. echo ">>> ${node_ip}"
  5. ssh ${node_ip} "curl ${node_ip}:32024"
  6. done

预期输出 nginx 欢迎页面内容。