Kubernetes 部署手册v1.12.2(16)

  1. 1. 08.验证集群功能
    1. 1.1. 检查节点状态
    2. 1.2. 创建测试文件
    3. 1.3. 执行定义文件
    4. 1.4. 检查各 Node 上的 Pod IP 连通性
    5. 1.5. 检查服务 IP 和端口可达性
    6. 1.6. 检查服务的 NodePort 可达性

#Kubernetes部署手册v1.12.2(16)

08.验证集群功能

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

检查节点状态

1
2
3
4
5
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
zb-v-cld-k8sm-01 Ready <none> 2h v1.12.2
zb-v-cld-k8sm-02 Ready <none> 2h v1.12.2
zb-v-cld-k8sm-03 Ready <none> 2h v1.12.2

都为 Ready 时正常。

创建测试文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
cd /opt/k8s/work
cat > dnsutils-ds.yml <<EOF
apiVersion: v1
kind: Service
metadata:
name: dnsutils-ds
labels:
app: dnsutils-ds
spec:
type: NodePort
selector:
app: dnsutils-ds
ports:
- name: http
port: 80
targetPort: 80
---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: dnsutils-ds
labels:
addonmanager.kubernetes.io/mode: Reconcile
spec:
template:
metadata:
labels:
app: dnsutils-ds
spec:
containers:
- name: my-dnsutils
image: tutum/dnsutils:latest
command:
- sleep
- "3600"
ports:
- containerPort: 80
EOF

执行定义文件

1
$ kubectl create -f dnsutils-ds.yml

检查各 Node 上的 Pod IP 连通性

1
2
3
4
$ kubectl get pods  -o wide|grep dnsutils-ds
dnsutils-ds-dbn97 1/1 Running 0 2m 10.253.39.2 zb-v-cld-k8sm-02
dnsutils-ds-rk777 1/1 Running 0 2m 10.253.81.2 zb-v-cld-k8sm-01
dnsutils-ds-tr9g5 1/1 Running 0 2m 10.253.29.2 zb-v-cld-k8sm-03

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

1
2
3
4
5
6
7
8
source /opt/k8s/bin/environment.sh
for node_ip in ${NODE_IPS[@]}
do
echo ">>> ${node_ip}"
ssh ${node_ip} "ping -c 1 10.253.39.2"
ssh ${node_ip} "ping -c 1 10.253.81.2"
ssh ${node_ip} "ping -c 1 10.253.29.2"
done

检查服务 IP 和端口可达性

1
2
$ kubectl get svc |grep dnsutils-ds
dnsutils-ds NodePort 10.254.254.228 <none> 80:8900/TCP 4m

可见:

  • Service Cluster IP:10.254.254.228
  • 服务端口:80
  • NodePort 端口:8900

在所有 Node 上 curl Service IP:

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

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

检查服务的 NodePort 可达性

在所有 Node 上执行:

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

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