zoukankan      html  css  js  c++  java
  • Kubernetes(k8s)中Pod资源的健康检查

    1、Pod的健康检查,也叫做探针,探针的种类有两种。

    答:1)、livenessProbe,健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器。
    2)、readinessProbe,可用性检查,周期性检查服务是否可用,不可用将从service的endpoints中移除。

    2、探针的检测方法。

    答:1)、exec,执行一段命令。
    2)、httpGet,检测某个http请求的返回状态码。
    3)、tcpSocket,测试某个端口是否能够连接。

    3、创建exec的探针检测方法。

    1 [root@k8s-master health]# vim pod_nginx_exec.yaml
     1 apiVersion: v1
     2 kind: Pod
     3 metadata:
     4   name: exec
     5 spec:
     6   containers:
     7     - name: nginx
     8       image: 192.168.110.133:5000/nginx:1.13
     9       ports:
    10         - containerPort: 80
    11       args:
    12         - /bin/sh
    13         - -c
    14         - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
    15       livenessProbe:
    16         exec:
    17           command:
    18             - cat
    19             - /tmp/healthy
    20         initialDelaySeconds: 5
    21         periodSeconds: 5
    22       

    开始创建这个Pod,操作如下所示:

     1 [root@k8s-master health]# kubectl create -f pod_nginx_exec.yaml 
     2 pod "exec" created
     3 [root@k8s-master health]# kubectl get all -o wide
     4 NAME       DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                             SELECTOR
     5 rc/mysql   1         1         1         1h        mysql          192.168.110.133:5000/mysql:5.7.30    app=mysql
     6 rc/myweb   1         1         1         1h        myweb          192.168.110.133:5000/tomcat:latest   app=myweb
     7 
     8 NAME             CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE       SELECTOR
     9 svc/kubernetes   10.254.0.1       <none>        443/TCP          13d       <none>
    10 svc/mysql        10.254.207.238   <none>        3306/TCP         1h        app=mysql
    11 svc/myweb        10.254.29.22     <nodes>       8080:30008/TCP   1h        app=myweb
    12 
    13 NAME             READY     STATUS    RESTARTS   AGE       IP            NODE
    14 po/busybox2      1/1       Running   1          35m       172.16.16.3   k8s-master
    15 po/exec          1/1       Running   0          15s       172.16.59.4   k8s-node2
    16 po/mysql-lmx4s   1/1       Running   0          1h        172.16.59.2   k8s-node2
    17 po/myweb-hsdwn   1/1       Running   0          1h        172.16.32.3   k8s-node3
    18 [root@k8s-master health]# 

    可用通过详细查看Pod的启动状况。

     1 [root@k8s-master health]# kubectl describe pod exec
     2 Name:        exec
     3 Namespace:    default
     4 Node:        k8s-node2/192.168.110.134
     5 Start Time:    Thu, 18 Jun 2020 16:36:16 +0800
     6 Labels:        <none>
     7 Status:        Running
     8 IP:        172.16.59.4
     9 Controllers:    <none>
    10 Containers:
    11   nginx:
    12     Container ID:    docker://54e08c980bd1ad05c756de4de50b0f61c448a01b7ffcda2b97dc8b5c3a6e2749
    13     Image:        192.168.110.133:5000/nginx:1.13
    14     Image ID:        docker-pullable://192.168.110.133:5000/nginx@sha256:e4f0474a75c510f40b37b6b7dc2516241ffa8bde5a442bde3d372c9519c84d90
    15     Port:        80/TCP
    16     Args:
    17       /bin/sh
    18       -c
    19       touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
    20     State:            Running
    21       Started:            Thu, 18 Jun 2020 16:37:32 +0800
    22     Last State:            Terminated
    23       Reason:            Error
    24       Exit Code:        137
    25       Started:            Thu, 18 Jun 2020 16:36:18 +0800
    26       Finished:            Thu, 18 Jun 2020 16:37:32 +0800
    27     Ready:            True
    28     Restart Count:        1
    29     Liveness:            exec [cat /tmp/healthy] delay=5s timeout=1s period=5s #success=1 #failure=3
    30     Volume Mounts:        <none>
    31     Environment Variables:    <none>
    32 Conditions:
    33   Type        Status
    34   Initialized     True 
    35   Ready     True 
    36   PodScheduled     True 
    37 No volumes.
    38 QoS Class:    BestEffort
    39 Tolerations:    <none>
    40 Events:
    41   FirstSeen    LastSeen    Count    From            SubObjectPath        Type        Reason        Message
    42   ---------    --------    -----    ----            -------------        --------    ------        -------
    43   1m        1m        1    {default-scheduler }                Normal        Scheduled    Successfully assigned exec to k8s-node2
    44   1m        1m        1    {kubelet k8s-node2}    spec.containers{nginx}    Normal        Created        Created container with docker id ff079949b2cb; Security:[seccomp=unconfined]
    45   1m        1m        1    {kubelet k8s-node2}    spec.containers{nginx}    Normal        Started        Started container with docker id ff079949b2cb
    46   1m        1m        3    {kubelet k8s-node2}    spec.containers{nginx}    Warning        Unhealthy    Liveness probe failed: cat: /tmp/healthy: No such file or directory
    47 
    48   1m    33s    2    {kubelet k8s-node2}    spec.containers{nginx}    Normal    Pulled    Container image "192.168.110.133:5000/nginx:1.13" already present on machine
    49   33s    33s    1    {kubelet k8s-node2}    spec.containers{nginx}    Normal    Killing    Killing container with docker id ff079949b2cb: pod "exec_default(c69fbd14-b13e-11ea-80b4-000c2919d52d)" container "nginx" is unhealthy, it will be killed and re-created.
    50   33s    33s    1    {kubelet k8s-node2}    spec.containers{nginx}    Normal    Created    Created container with docker id 54e08c980bd1; Security:[seccomp=unconfined]
    51   33s    33s    1    {kubelet k8s-node2}    spec.containers{nginx}    Normal    Started    Started container with docker id 54e08c980bd1
    52 [root@k8s-master health]# kubectl get all -o wide
    53 NAME       DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                             SELECTOR
    54 rc/mysql   1         1         1         1h        mysql          192.168.110.133:5000/mysql:5.7.30    app=mysql
    55 rc/myweb   1         1         1         1h        myweb          192.168.110.133:5000/tomcat:latest   app=myweb
    56 
    57 NAME             CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE       SELECTOR
    58 svc/kubernetes   10.254.0.1       <none>        443/TCP          13d       <none>
    59 svc/mysql        10.254.207.238   <none>        3306/TCP         1h        app=mysql
    60 svc/myweb        10.254.29.22     <nodes>       8080:30008/TCP   1h        app=myweb
    61 
    62 NAME             READY     STATUS    RESTARTS   AGE       IP            NODE
    63 po/busybox2      1/1       Running   1          37m       172.16.16.3   k8s-master
    64 po/exec          1/1       Running   1          2m        172.16.59.4   k8s-node2
    65 po/mysql-lmx4s   1/1       Running   0          1h        172.16.59.2   k8s-node2
    66 po/myweb-hsdwn   1/1       Running   0          1h        172.16.32.3   k8s-node3
    67 [root@k8s-master health]# 

    pod重启的次数,可以看到这个Pod的重启了多少次了。

    4、创建httpGet的探针检测方法,liveness探针的httpGet使用。

    1 [root@k8s-master health]# vim nginx_pod_httpGet.yaml

    具体内容,如下所示:

     1 apiVersion: v1
     2 kind: Pod
     3 metadata:
     4   name: httpget
     5 spec:
     6   containers:
     7     - name: nginx
     8       image: 192.168.110.133:5000/nginx:1.13
     9       ports:
    10         - containerPort: 80
    11       livenessProbe:
    12         httpGet:
    13           path: /index.html
    14           port: 80
    15         initialDelaySeconds: 3
    16         periodSeconds: 3
    17       

    创建httpGet的探针检测方法,liveness探针的httpGet使用。

     1 [root@k8s-master health]# kubectl get all -o wide
     2 NAME       DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                             SELECTOR
     3 rc/mysql   1         1         1         1h        mysql          192.168.110.133:5000/mysql:5.7.30    app=mysql
     4 rc/myweb   1         1         1         1h        myweb          192.168.110.133:5000/tomcat:latest   app=myweb
     5 
     6 NAME             CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE       SELECTOR
     7 svc/kubernetes   10.254.0.1       <none>        443/TCP          13d       <none>
     8 svc/mysql        10.254.207.238   <none>        3306/TCP         1h        app=mysql
     9 svc/myweb        10.254.29.22     <nodes>       8080:30008/TCP   1h        app=myweb
    10 
    11 NAME             READY     STATUS             RESTARTS   AGE       IP            NODE
    12 po/busybox2      1/1       Running            1          46m       172.16.16.3   k8s-master
    13 po/exec          0/1       CrashLoopBackOff   6          11m       172.16.59.4   k8s-node2
    14 po/httpget       1/1       Running            0          22s       172.16.16.4   k8s-master
    15 po/mysql-lmx4s   1/1       Running            0          1h        172.16.59.2   k8s-node2
    16 po/myweb-hsdwn   1/1       Running            0          1h        172.16.32.3   k8s-node3
    17 [root@k8s-master health]# kubectl describe pod httpget
    18 Name:        httpget
    19 Namespace:    default
    20 Node:        k8s-master/192.168.110.133
    21 Start Time:    Thu, 18 Jun 2020 16:47:03 +0800
    22 Labels:        <none>
    23 Status:        Running
    24 IP:        172.16.16.4
    25 Controllers:    <none>
    26 Containers:
    27   nginx:
    28     Container ID:        docker://f9e0ea6a16a26d3fca57b1e1b521f642f89eb05e6951a05830933e68dce1253a
    29     Image:            192.168.110.133:5000/nginx:1.13
    30     Image ID:            docker-pullable://docker.io/nginx@sha256:b1d09e9718890e6ebbbd2bc319ef1611559e30ce1b6f56b2e3b479d9da51dc35
    31     Port:            80/TCP
    32     State:            Running
    33       Started:            Thu, 18 Jun 2020 16:47:04 +0800
    34     Ready:            True
    35     Restart Count:        0
    36     Liveness:            http-get http://:80/index.html delay=3s timeout=1s period=3s #success=1 #failure=3
    37     Volume Mounts:        <none>
    38     Environment Variables:    <none>
    39 Conditions:
    40   Type        Status
    41   Initialized     True 
    42   Ready     True 
    43   PodScheduled     True 
    44 No volumes.
    45 QoS Class:    BestEffort
    46 Tolerations:    <none>
    47 Events:
    48   FirstSeen    LastSeen    Count    From            SubObjectPath        Type        Reason        Message
    49   ---------    --------    -----    ----            -------------        --------    ------        -------
    50   1m        1m        1    {default-scheduler }                Normal        Scheduled    Successfully assigned httpget to k8s-master
    51   1m        1m        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Pulled        Container image "192.168.110.133:5000/nginx:1.13" already present on machine
    52   1m        1m        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Created        Created container with docker id f9e0ea6a16a2; Security:[seccomp=unconfined]
    53   1m        1m        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Started        Started container with docker id f9e0ea6a16a2
    54 [root@k8s-master health]# 

    默认,这个首页index.html是可以访问到的,这里也可以让它访问不到的。

      1 [root@k8s-master health]# kubectl exec -it httpget bash
      2 root@httpget:/# cd /usr/share/html
      3 bash: cd: /usr/share/html: No such file or directory
      4 root@httpget:/# cd /usr/share/nginx/html
      5 root@httpget:/usr/share/nginx/html# ls
      6 50x.html  index.html
      7 root@httpget:/usr/share/nginx/html# mv index.html /tmp/
      8 root@httpget:/usr/share/nginx/html# exit
      9 exit
     10 [root@k8s-master health]# kubectl get pod httpget
     11 NAME      READY     STATUS    RESTARTS   AGE
     12 httpget   1/1       Running   1          3m
     13 [root@k8s-master health]# kubectl describe pod httpget
     14 Name:        httpget
     15 Namespace:    default
     16 Node:        k8s-master/192.168.110.133
     17 Start Time:    Thu, 18 Jun 2020 16:47:03 +0800
     18 Labels:        <none>
     19 Status:        Running
     20 IP:        172.16.16.4
     21 Controllers:    <none>
     22 Containers:
     23   nginx:
     24     Container ID:        docker://7bb1ef7b33b24e16aad18053b3238077baac8e4b507ba85a6943dc9e9ae3ea29
     25     Image:            192.168.110.133:5000/nginx:1.13
     26     Image ID:            docker-pullable://docker.io/nginx@sha256:b1d09e9718890e6ebbbd2bc319ef1611559e30ce1b6f56b2e3b479d9da51dc35
     27     Port:            80/TCP
     28     State:            Running
     29       Started:            Thu, 18 Jun 2020 16:50:07 +0800
     30     Last State:            Terminated
     31       Reason:            Completed
     32       Exit Code:        0
     33       Started:            Thu, 18 Jun 2020 16:47:04 +0800
     34       Finished:            Thu, 18 Jun 2020 16:50:06 +0800
     35     Ready:            True
     36     Restart Count:        1
     37     Liveness:            http-get http://:80/index.html delay=3s timeout=1s period=3s #success=1 #failure=3
     38     Volume Mounts:        <none>
     39     Environment Variables:    <none>
     40 Conditions:
     41   Type        Status
     42   Initialized     True 
     43   Ready     True 
     44   PodScheduled     True 
     45 No volumes.
     46 QoS Class:    BestEffort
     47 Tolerations:    <none>
     48 Events:
     49   FirstSeen    LastSeen    Count    From            SubObjectPath        Type        Reason        Message
     50   ---------    --------    -----    ----            -------------        --------    ------        -------
     51   3m        3m        1    {default-scheduler }                Normal        Scheduled    Successfully assigned httpget to k8s-master
     52   3m        3m        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Created        Created container with docker id f9e0ea6a16a2; Security:[seccomp=unconfined]
     53   3m        3m        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Started        Started container with docker id f9e0ea6a16a2
     54   3m        13s        2    {kubelet k8s-master}    spec.containers{nginx}    Normal        Pulled        Container image "192.168.110.133:5000/nginx:1.13" already present on machine
     55   19s        13s        3    {kubelet k8s-master}    spec.containers{nginx}    Warning        Unhealthy    Liveness probe failed: HTTP probe failed with statuscode: 404
     56   13s        13s        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Killing        Killing container with docker id f9e0ea6a16a2: pod "httpget_default(4857d09b-b140-11ea-80b4-000c2919d52d)" container "nginx" is unhealthy, it will be killed and re-created.
     57   13s        13s        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Created        Created container with docker id 7bb1ef7b33b2; Security:[seccomp=unconfined]
     58   12s        12s        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Started        Started container with docker id 7bb1ef7b33b2
     59 [root@k8s-master health]# kubectl describe pod httpget
     60 Name:        httpget
     61 Namespace:    default
     62 Node:        k8s-master/192.168.110.133
     63 Start Time:    Thu, 18 Jun 2020 16:47:03 +0800
     64 Labels:        <none>
     65 Status:        Running
     66 IP:        172.16.16.4
     67 Controllers:    <none>
     68 Containers:
     69   nginx:
     70     Container ID:        docker://7bb1ef7b33b24e16aad18053b3238077baac8e4b507ba85a6943dc9e9ae3ea29
     71     Image:            192.168.110.133:5000/nginx:1.13
     72     Image ID:            docker-pullable://docker.io/nginx@sha256:b1d09e9718890e6ebbbd2bc319ef1611559e30ce1b6f56b2e3b479d9da51dc35
     73     Port:            80/TCP
     74     State:            Running
     75       Started:            Thu, 18 Jun 2020 16:50:07 +0800
     76     Last State:            Terminated
     77       Reason:            Completed
     78       Exit Code:        0
     79       Started:            Thu, 18 Jun 2020 16:47:04 +0800
     80       Finished:            Thu, 18 Jun 2020 16:50:06 +0800
     81     Ready:            True
     82     Restart Count:        1
     83     Liveness:            http-get http://:80/index.html delay=3s timeout=1s period=3s #success=1 #failure=3
     84     Volume Mounts:        <none>
     85     Environment Variables:    <none>
     86 Conditions:
     87   Type        Status
     88   Initialized     True 
     89   Ready     True 
     90   PodScheduled     True 
     91 No volumes.
     92 QoS Class:    BestEffort
     93 Tolerations:    <none>
     94 Events:
     95   FirstSeen    LastSeen    Count    From            SubObjectPath        Type        Reason        Message
     96   ---------    --------    -----    ----            -------------        --------    ------        -------
     97   3m        3m        1    {default-scheduler }                Normal        Scheduled    Successfully assigned httpget to k8s-master
     98   3m        3m        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Created        Created container with docker id f9e0ea6a16a2; Security:[seccomp=unconfined]
     99   3m        3m        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Started        Started container with docker id f9e0ea6a16a2
    100   3m        18s        2    {kubelet k8s-master}    spec.containers{nginx}    Normal        Pulled        Container image "192.168.110.133:5000/nginx:1.13" already present on machine
    101   24s        18s        3    {kubelet k8s-master}    spec.containers{nginx}    Warning        Unhealthy    Liveness probe failed: HTTP probe failed with statuscode: 404
    102   18s        18s        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Killing        Killing container with docker id f9e0ea6a16a2: pod "httpget_default(4857d09b-b140-11ea-80b4-000c2919d52d)" container "nginx" is unhealthy, it will be killed and re-created.
    103   18s        18s        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Created        Created container with docker id 7bb1ef7b33b2; Security:[seccomp=unconfined]
    104   17s        17s        1    {kubelet k8s-master}    spec.containers{nginx}    Normal        Started        Started container with docker id 7bb1ef7b33b2
    105 [root@k8s-master health]# 

    5、liveness探针的tcpSocket使用。

    1 [root@k8s-master health]# vim nginx_pod_tcpSocket.yaml

    使用tcpSocket监控的是80的端口,配置文件的内容如下所示:

     1 apiVersion: v1
     2 kind: Pod
     3 metadata:
     4   name: tcpsocket
     5 spec:
     6   containers:
     7     - name: nginx
     8       image: 192.168.110.133:5000/nginx:1.13
     9       ports:
    10         - containerPort: 80
    11       livenessProbe:
    12         tcpSocket:
    13           port: 80
    14         initialDelaySeconds: 3
    15         periodSeconds: 3
    16       

    创建,如下所示:

     1 [root@k8s-master health]# kubectl create -f nginx_pod_tcpSocket.yaml 
     2 pod "tcpsocket" created
     3 [root@k8s-master health]# kubectl get all -o wide
     4 NAME             CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE       SELECTOR
     5 svc/kubernetes   10.254.0.1   <none>        443/TCP   13d       <none>
     6 
     7 NAME           READY     STATUS             RESTARTS   AGE       IP            NODE
     8 po/busybox2    1/1       Running            1          54m       172.16.16.3   k8s-master
     9 po/exec        0/1       CrashLoopBackOff   7          18m       172.16.59.4   k8s-node2
    10 po/httpget     1/1       Running            1          8m        172.16.16.4   k8s-master
    11 po/tcpsocket   1/1       Running            0          6s        172.16.59.2   k8s-node2

    6、readiness探针的httpGet使用。

    1 [root@k8s-master health]# vim nginx_rc_readiness.yaml

    具体内容,如下所示:

    需要访问qiangge.html,如果不存在就一直加入不到svc中。

     1 apiVersion: v1
     2 kind: ReplicationController
     3 metadata:
     4   name: readiness
     5 spec:
     6   replicas: 2
     7   selector:
     8     app: readiness
     9   template:
    10     metadata:
    11       labels:
    12         app: readiness
    13     spec:
    14       containers:
    15         - name: readiness
    16           image: 192.168.110.133:5000/nginx:1.13
    17           ports:
    18             - containerPort: 80
    19           readinessProbe:
    20             httpGet:
    21               path: /qiangge.html
    22               port: 80
    23             initialDelaySeconds: 3
    24             periodSeconds: 3

    创建完rc之后,需要创建一个svc的,这里使用命令创建,不再使用配置文件进行创建了。

     1 [root@k8s-master health]# kubectl expose rc readiness --port=80
     2 service "readiness" exposed
     3 [root@k8s-master health]# kubectl describe svc readiness
     4 Name:            readiness
     5 Namespace:        default
     6 Labels:            app=readiness
     7 Selector:        app=readiness
     8 Type:            ClusterIP
     9 IP:            10.254.218.107
    10 Port:            <unset>    80/TCP
    11 Endpoints:        
    12 Session Affinity:    None
    13 No events.
    14 [root@k8s-master health]# kubectl get all -o wide
    15 NAME           DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                          SELECTOR
    16 rc/readiness   2         2         0         2m        readiness      192.168.110.133:5000/nginx:1.13   app=readiness
    17 
    18 NAME             CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE       SELECTOR
    19 svc/kubernetes   10.254.0.1       <none>        443/TCP   13d       <none>
    20 svc/readiness    10.254.218.107   <none>        80/TCP    28s       app=readiness
    21 
    22 NAME                 READY     STATUS    RESTARTS   AGE       IP            NODE
    23 po/busybox2          1/1       Running   1          1h        172.16.16.3   k8s-master
    24 po/exec              1/1       Running   11         28m       172.16.59.4   k8s-node2
    25 po/httpget           1/1       Running   1          18m       172.16.16.4   k8s-master
    26 po/readiness-66j6c   0/1       Running   0          2m        172.16.59.5   k8s-node2
    27 po/readiness-l2v6z   0/1       Running   0          2m        172.16.32.3   k8s-node3
    28 po/tcpsocket         1/1       Running   0          10m       172.16.59.2   k8s-node2
    29 [root@k8s-master health]# 

    可以看到readiness已经启动了两个Pod了,但是后端节点里面是空的。此时可以创建一个指定的html文件,就可以了。

    此时发现后端节点也不为空了,Pod也正常启动了,另外一个可以类似出来,就可以将两个Pod正常启动起来了。

     1 [root@k8s-master health]# kubectl exec -it readiness-66j6c bash
     2 root@readiness-66j6c:/# cd /usr/share/nginx/html/
     3 root@readiness-66j6c:/usr/share/nginx/html# echo hello nginx > qiangge.html
     4 root@readiness-66j6c:/usr/share/nginx/html# cat qiangge.html 
     5 hello nginx
     6 root@readiness-66j6c:/usr/share/nginx/html# exit
     7 exit
     8 [root@k8s-master health]# kubectl describe svc readiness
     9 Name:            readiness
    10 Namespace:        default
    11 Labels:            app=readiness
    12 Selector:        app=readiness
    13 Type:            ClusterIP
    14 IP:            10.254.218.107
    15 Port:            <unset>    80/TCP
    16 Endpoints:        172.16.59.5:80
    17 Session Affinity:    None
    18 No events.
    19 [root@k8s-master health]# kubectl get all -o wide
    20 NAME           DESIRED   CURRENT   READY     AGE       CONTAINER(S)   IMAGE(S)                          SELECTOR
    21 rc/readiness   2         2         1         6m        readiness      192.168.110.133:5000/nginx:1.13   app=readiness
    22 
    23 NAME             CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE       SELECTOR
    24 svc/kubernetes   10.254.0.1       <none>        443/TCP   13d       <none>
    25 svc/readiness    10.254.218.107   <none>        80/TCP    4m        app=readiness
    26 
    27 NAME                 READY     STATUS             RESTARTS   AGE       IP            NODE
    28 po/busybox2          1/1       Running            1          1h        172.16.16.3   k8s-master
    29 po/exec              0/1       CrashLoopBackOff   11         32m       172.16.59.4   k8s-node2
    30 po/httpget           1/1       Running            1          21m       172.16.16.4   k8s-master
    31 po/readiness-66j6c   1/1       Running            0          6m        172.16.59.5   k8s-node2
    32 po/readiness-l2v6z   0/1       Running            0          6m        172.16.32.3   k8s-node3
    33 po/tcpsocket         1/1       Running            0          13m       172.16.59.2   k8s-node2
    34 [root@k8s-master health]# 
  • 相关阅读:
    PAT A1094 The Largest Generation (25 分)——树的bfs遍历
    PAT A1055 The World's Richest (25 分)——排序
    PAT A1052 Linked List Sorting (25 分)——链表,排序
    PAT A1076 Forwards on Weibo (30 分)——图的bfs
    辅导员
    辅导员面试
    C程序设计
    Excel VBA 基本概念
    Excel函数
    导入excel表的数据到数据库ssh
  • 原文地址:https://www.cnblogs.com/biehongli/p/13158167.html
Copyright © 2011-2022 走看看