四.驗證叢集
1.驗證
kubectl -n kube-system get pod -o wide
2.等kube-system命名空間下的Pod都為Running,這裡先測試一下dns是否正常
cat<<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- image: nginx:alpine
name: nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
selector:
app: nginx
type: NodePort
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 30001
---
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- name: busybox
image: abcdocker9/centos:v1
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
restartPolicy: Always
EOF
複制
3.建立後Pod我們進行檢查
[root@k8s-01 ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/busybox 1/1 Running 0 4m21s
pod/nginx-97499b967-lfvcq 1/1 Running 0 4m21s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 443/TCP 16h
service/nginx NodePort 10.96.21.46 80:30001/TCP 15h
複制
4.使用nslookup檢視是否能傳回位址
[root@k8s-01 ~]# kubectl exec -ti busybox -- nslookup kubernetes
Server: 10.96.0.10
Address: 10.96.0.10#53
Name: kubernetes.default.svc.cluster.local
Address: 10.96.0.1
複制
5.測試nginx svc以及Pod内部網絡通信是否正常
-
for i in k8s-01 k8s-02 k8s-03 k8s-04 k8s-05
-
do
-
ssh root@$i curl -s 10.96.21.46
#nginx svc ip
-
ssh root@$i curl -s 10.244.3.4
#pod ip
-
done
6.端口我這裡使用了nodeport,在叢集任意節點通路節點IP:30001檢查是否正常
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAjM2EzLcd3LcJzLcJzdllmVldWYtl2Pn5GcuI2cht2coFje5g2LcRDO0ATNyczLcVmdhNXLwRHdo9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.png)
初始化叢集(如果過程中出現問題,我們可以直接執行下面的指令進行初始化叢集)
kubeadm reset