• 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]# 
  • 相关阅读:
    【原创】开源Math.NET基础数学类库使用(01)综合介绍
    【原创】开源.NET排列组合组件KwCombinatorics使用(三)——笛卡尔积组合
    【原创】开源.NET排列组合组件KwCombinatorics使用(二)——排列生成
    apply,call,bind的区别
    javascript替换手机号中间4位
    css常见的概念
    关于URL编码/javascript/js url 编码
    jquery判断div滚动条到底部
    javascript中的array对象属性及方法
    localStorage和sessionStorage区别
  • 原文地址:https://www.cnblogs.com/biehongli/p/13158167.html
Copyright © 2020-2023  润新知