一,查看node情况
kubectl get node
#输出:
NAME STATUS ROLES AGE VERSION
172.27.128.11 Ready <none> 43s v1.14.2
172.27.128.12 Ready <none> 43s v1.14.2
172.27.128.13 Ready <none> 43s v1.14.2
#都为 Ready 时正常
二,创建测试文件
cat > nginx-ds.yml <<EOF
apiVersion: v1
kind: Service
metadata:
name: nginx-ds
labels:
app: nginx-ds
spec:
type: NodePort
selector:
app: nginx-ds
ports:
- name: http
port: 80
targetPort: 80
---
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: nginx-ds
labels:
addonmanager.kubernetes.io/mode: Reconcile
spec:
template:
metadata:
labels:
app: nginx-ds
spec:
containers:
- name: my-nginx
image: nginx:1.7.9
ports:
- containerPort: 80
EOF
三,创建
kubectl create -f nginx-ds.yml
四,检查各节点的 Pod IP 连通性
kubectl get pods -o wide|grep nginx-ds
#输出:
nginx-ds-cp8br 1/1 Running 0 6m47s 10.2.41.2 172.27.128.12 <none> <none>
nginx-ds-ldb5l 1/1 Running 0 6m47s 10.2.84.2 172.27.128.13 <none> <none>
nginx-ds-mvrd5 1/1 Running 0 6m47s 10.2.98.2 172.27.128.11 <none> <none>
#nginx-ds 的 Pod IP 分别是 10.2.41.2、10.2.84.2、10.2.98.2,在所有 Node 上分别 ping 这三个 IP,看是否连通
五,ping Pod IP
source /root/env.sh
for master_ip in ${MASTER_IPS[@]}
do
echo -e "\033[31m>>> ${master_ip} \033[0m"
ssh ${master_ip} "ping -c 1 10.2.41.2"
ssh ${master_ip} "ping -c 1 10.2.84.2"
ssh ${master_ip} "ping -c 1 10.2.98.2"
done
六,检查服务 IP 和端口可达性
kubectl get svc |grep nginx-ds
#输出:
nginx-ds NodePort 10.1.146.56 <none> 80:34750/TCP 10m
- Service Cluster IP:10.1.146.56
- 服务端口:80
- NodePort 端口:34750
七,测试nginx
source /root/env.sh
for master_ip in ${MASTER_IPS[@]}
do
echo -e "\033[31m>>> ${master_ip} \033[0m"
ssh ${master_ip} "curl -s 10.1.146.56"
done
#预期输出 nginx 欢迎页面内容
八,检查服务的 NodePort 可达
source /root/env.sh
for master_ip in ${MASTER_IPS[@]}
do
echo -e "\033[31m>>> ${master_ip} \033[0m"
ssh ${master_ip} "curl -s ${master_ip}:34750"
done
#预期输出 nginx 欢迎页面内容