Skip to content

Latest commit

 

History

History
149 lines (122 loc) · 4.39 KB

08.验证集群功能.md

File metadata and controls

149 lines (122 loc) · 4.39 KB

tags: verify

08.验证集群功能

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

检查节点状态

[admin@k8s-admin ~]$ kubectl get nodes
NAME         STATUS   ROLES    AGE   VERSION
k8s-node01   Ready    <none>   17h   v1.13.4
k8s-node02   Ready    <none>   17h   v1.13.4
k8s-node03   Ready    <none>   17h   v1.13.4
k8s-node04   Ready    <none>   21m   v1.13.4
k8s-node05   Ready    <none>   21m   v1.13.4
  • STATUS 都为 Ready 时正常。

创建测试 Service 和 DaemonSet

[admin@k8s-admin ~]$ mkdir yaml
[admin@k8s-admin ~]$ cat > yaml/nginx-ds.yaml <<EOF
apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx-svc
spec:
  type: NodePort
  selector:
    app: nginx-ds
  ports:
  - name: http
    port: 80
    targetPort: 80
---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: nginx
  labels:
    app: nginx-ds
spec:
  template:
    metadata:
      labels:
        app: nginx-ds
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
EOF
[admin@k8s-admin ~]$ kubectl create -f yaml/nginx-ds.yaml
service/nginx created
daemonset.extensions/nginx created

检查各 Node 上的 Pod IP 连通性

[admin@k8s-admin ~]$ kubectl get pods -o wide
NAME          READY   STATUS        RESTARTS   AGE   IP             NODE         NOMINATED NODE   READINESS GATES
nginx-4c9jd   1/1     Running       0          77s   172.16.208.2   k8s-node04   <none>           <none>
nginx-h986n   1/1     Running       0          77s   172.16.216.2   k8s-node03   <none>           <none>
nginx-kbx5d   1/1     Running       0          77s   172.16.88.2    k8s-node02   <none>           <none>
nginx-m7dl2   1/1     Running       0          77s   172.16.240.2   k8s-node01   <none>           <none>
nginx-q6snc   1/1     Running       0          77s   172.16.128.2   k8s-node05   <none>           <none>

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

[root@k8s-node01 ~]# for i in $(kubectl get pods -o wide|grep nginx|awk '{print $6}'|grep -v IP);do ping -c 1 $i;done
PING 172.16.216.2 (172.16.216.2) 56(84) bytes of data.
64 bytes from 172.16.216.2: icmp_seq=1 ttl=63 time=1.02 ms

--- 172.16.216.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.023/1.023/1.023/0.000 ms
PING 172.16.128.2 (172.16.128.2) 56(84) bytes of data.
64 bytes from 172.16.128.2: icmp_seq=1 ttl=63 time=1.60 ms

--- 172.16.128.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.601/1.601/1.601/0.000 ms
PING 172.16.208.2 (172.16.208.2) 56(84) bytes of data.
64 bytes from 172.16.208.2: icmp_seq=1 ttl=63 time=1.11 ms

--- 172.16.208.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.118/1.118/1.118/0.000 ms
PING 172.16.88.2 (172.16.88.2) 56(84) bytes of data.
64 bytes from 172.16.88.2: icmp_seq=1 ttl=63 time=1.05 ms

--- 172.16.88.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.052/1.052/1.052/0.000 ms
PING 172.16.240.2 (172.16.240.2) 56(84) bytes of data.
64 bytes from 172.16.240.2: icmp_seq=1 ttl=64 time=0.425 ms

--- 172.16.240.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.425/0.425/0.425/0.000 ms

检查服务 IP 和端口可达性

[admin@k8s-admin ~]$ kubectl get svc nginx
NAME    TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
nginx   NodePort   10.0.125.178   <none>        80:30463/TCP   3m45s
  • Service Cluster IP:10.0.125.178
  • Service Port:80
  • Node Port:30463

在所有 Node 上 curl Service IP:

[admin@k8s-admin ~]$ ansible k8s-workers -a "curl 10.0.125.178"

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

检查服务的 NodePort 可达性

在所有 Node 上执行:

[admin@k8s-admin ~]$ for i in k8s-node{01..05}; do curl $i:30463; done

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

删除测试的 Service 和 DaemonSet

[admin@k8s-admin ~]$ kubectl delete svc nginx
service "nginx" deleted
[admin@k8s-admin ~]$ kubectl delete ds nginx
daemonset.extensions "nginx" deleted