07. 验证集群功能

    注意:如果没有特殊指明,本文档的所有操作均在 zhangjun-k8s-01 节点上执行,然后远程分发文件和执行命令。

    都为 Ready 且版本为 v1.16.6 时正常。

    创建测试文件

    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. port: 80
    14. targetPort: 80
    15. ---
    16. kind: DaemonSet
    17. metadata:
    18. name: nginx-ds
    19. labels:
    20. addonmanager.kubernetes.io/mode: Reconcile
    21. spec:
    22. selector:
    23. matchLabels:
    24. app: nginx-ds
    25. template:
    26. metadata:
    27. labels:
    28. app: nginx-ds
    29. spec:
    30. containers:
    31. ports:
    32. - containerPort: 80
    33. EOF

    检查各节点的 Pod IP 连通性

    1. $ kubectl get pods -o wide -l app=nginx-ds
    2. NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
    3. nginx-ds-j7v5g 1/1 Running 0 61s 172.30.244.1 zhangjun-k8s-01 <none> <none>
    4. nginx-ds-js8g8 1/1 Running 0 61s 172.30.82.129 zhangjun-k8s-02 <none> <none>
    5. nginx-ds-n2p4x 1/1 Running 0 61s 172.30.184.130 zhangjun-k8s-03 <none> <none>
    1. $ kubectl get svc -l app=nginx-ds
    2. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    3. nginx-ds NodePort 10.254.116.22 <none> 80:30562/TCP 2m7s

    可见:

    • Service Cluster IP:10.254.116.22
    • 服务端口:80
    • NodePort 端口:30562

    在所有 Node 上 curl Service IP:

    检查服务的 NodePort 可达性

    在所有 Node 上执行:

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

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