[kubernetes]4-4 集群可用性测试

 

4-4 集群可用性测试

1. 创建nginx ds

 # 写入配置

$ 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

 

# 创建ds

$ kubectl create -f nginx-ds.yml

[kubernetes]4-4 集群可用性测试

 

2. 检查各种ip连通性

# 检查各 Node 上的 Pod IP 连通性(主节点没有calico所以不能访问podip) 下的很慢,手动去node上下也是很慢

$ kubectl get pods  -o wide

[kubernetes]4-4 集群可用性测试

 

# 在每个worker节点上ping pod ip

$ ping <pod-ip>

 

# 检查service可达性

$ kubectl get svc

 

# 在每个worker节点上访问服务(主节点没有proxy所以不能访问service-ip)

$ curl <service-ip>:<port>

 

# 在每个节点检查node-port可用性

$ curl <node-ip>:<port>

 

3. 检查dns可用性

# 创建一个nginx pod

$ cat > pod-nginx.yaml <<EOF

apiVersion: v1

kind: Pod

metadata:

  name: nginx

spec:

  containers:

  - name: nginx

    image: nginx:1.7.9

    ports:

    - containerPort: 80

EOF

 

# 创建pod

$ kubectl create -f pod-nginx.yaml

 

# 进入pod,查看dns

$ kubectl exec  nginx -i -t -- /bin/bash

 

# 查看dns配置

[email protected]:/# cat /etc/resolv.conf

 

# 查看名字是否可以正确解析

[email protected]:/# ping nginx-ds

[email protected]:/# ping kubernetes

[kubernetes]4-4 集群可用性测试