tags: verify
本文档使用 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
时正常。
[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
[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.2
、172.16.216.2
、172.16.88.2
、172.16.240.2
、172.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
[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 欢迎页面内容。
在所有 Node 上执行:
[admin@k8s-admin ~]$ for i in k8s-node{01..05}; do curl $i:30463; done
预期输出 Nginx 欢迎页面内容。
[admin@k8s-admin ~]$ kubectl delete svc nginx
service "nginx" deleted
[admin@k8s-admin ~]$ kubectl delete ds nginx
daemonset.extensions "nginx" deleted