Kubernetes - Pod 探测及资源限制

#1> preStop
[19:22:26 root@master1 pod]#kubectl describe pod prestop-pod 
Name:         prestop-pod
Namespace:    default
Priority:     0
Node:         node1.noisedu.cn/10.0.0.53
Start Time:   Sun, 05 Dec 2021 19:22:17 +0800
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           10.244.3.7
IPs:
  IP:  10.244.3.7
Containers:
  prestop-pod:
    Container ID:   docker://2c137a437fd6aefacc65a676eb4f28905fcb092d717e68310011d1c130962d50
    Image:          10.0.0.55:80/mykubernetes/nginx:1.21.3
    Image ID:       docker-pullable://10.0.0.55:80/mykubernetes/nginx@sha256:4424e31f2c366108433ecca7890ad527b243361577180dfd9a5bb36e828abf47
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Sun, 05 Dec 2021 19:22:23 +0800
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /prestop/ from message (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-5bv86 (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  message:
    Type:          HostPath (bare host directory volume)
    Path:          /tmp
    HostPathType:  
  kube-api-access-5bv86:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  21s   default-scheduler  Successfully assigned default/prestop-pod to node1.noisedu.cn
  Normal  Pulling    20s   kubelet            Pulling image "10.0.0.55:80/mykubernetes/nginx:1.21.3"
  Normal  Pulled     15s   kubelet            Successfully pulled image "10.0.0.55:80/mykubernetes/nginx:1.21.3" in 5.110831753s
  Normal  Created    14s   kubelet            Created container prestop-pod
  Normal  Started    14s   kubelet            Started container prestop-pod

[19:26:14 root@node1 ~]#cat /tmp/prestop 
prestop Handler

########### static pod 
[19:28:24 root@master1 pod]#scp 07-pod-static.yaml  10.0.0.53:/etc/kubernetes/manifests/
07-pod-static.yaml                                                                                              100%  142     6.9KB/s   00:00    
[19:30:12 root@master1 pod]#kubectl get pod -o wide
NAME                          READY   STATUS    RESTARTS   AGE   IP            NODE               NOMINATED NODE   READINESS GATES
static-pod-node1.noisedu.cn   1/1     Running   0          4s    10.244.3.10   node1.noisedu.cn   <none>           <none>
[19:30:13 root@master1 pod]#curl 10.244.3.10
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

[19:30:03 root@node1 manifests]#rm -f 07-pod-static.yaml 

[20:06:15 root@master1 pod]#kubectl get pod
No resources found in default namespace.


########### liveness probe 1 - exec
[20:11:11 root@master1 pod]#cat 11-pod-health-cmd.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: liveness-exec-pod
  namespace: default
spec:
  containers:
  - name: liveness-exec-container
    image: 10.0.0.19:80/mykubernetes/busybox:v0.1
    imagePullPolicy: IfNotPresent
    command: ["/bin/sh","-c","touch /tmp/healthy; sleep 3; rm -rf /tmp/healthy;sleep 3600"]
    livenessProbe:
      exec:
        command: ["test", "-e","/tmp/healthy"]
      initialDelaySeconds: 1
      periodSeconds: 3

[20:12:19 root@master1 pod]#kubectl apply -f 11-pod-health-cmd.yaml 
pod/liveness-exec-pod created
[20:12:26 root@master1 pod]#kubectl get pod -o wide
NAME                READY   STATUS    RESTARTS   AGE   IP            NODE               NOMINATED NODE   READINESS GATES
liveness-exec-pod   1/1     Running   0          10s   10.244.3.11   node1.noisedu.cn   <none>           <none>
[20:13:06 root@master1 pod]#kubectl get pod -o wide
NAME                READY   STATUS    RESTARTS   AGE   IP            NODE               NOMINATED NODE   READINESS GATES
liveness-exec-pod   1/1     Running   0          41s   10.244.3.11   node1.noisedu.cn   <none>           <none>
[20:13:07 root@master1 pod]#kubectl describe pod liveness-exec-pod 
Name:         liveness-exec-pod
Namespace:    default
Priority:     0
Node:         node1.noisedu.cn/10.0.0.53
Start Time:   Sun, 05 Dec 2021 20:12:26 +0800
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           10.244.3.11
IPs:
  IP:  10.244.3.11
Containers:
  liveness-exec-container:
    Container ID:  docker://1a45ef84b0b9293e7f03d50c2b6bc1ce7f6b73e2e024b0a444d43e5126e86154
    Image:         10.0.0.55:80/mykubernetes/busybox:v0.1
    Image ID:      docker-pullable://10.0.0.55:80/mykubernetes/busybox@sha256:d5c6e74e3115b55dce759c1b3a52b1d2db60dc6929681de2f76cdc5d6f4d7412
    Port:          <none>
    Host Port:     <none>
    Command:
      /bin/sh
      -c
      touch /tmp/healthy; sleep 3; rm -rf /tmp/healthy;sleep 3600
    State:          Running
      Started:      Sun, 05 Dec 2021 20:13:09 +0800
    Last State:     Terminated
      Reason:       Error
      Exit Code:    137
      Started:      Sun, 05 Dec 2021 20:12:27 +0800
      Finished:     Sun, 05 Dec 2021 20:13:08 +0800
    Ready:          True
    Restart Count:  1
    Liveness:       exec [test -e /tmp/healthy] delay=1s timeout=1s period=3s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-58d9b (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  kube-api-access-58d9b:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  44s                default-scheduler  Successfully assigned default/liveness-exec-pod to node1.noisedu.cn
  Warning  Unhealthy  32s (x3 over 38s)  kubelet            Liveness probe failed:
  Normal   Killing    32s                kubelet            Container liveness-exec-container failed liveness probe, will be restarted
  Normal   Pulled     2s (x2 over 43s)   kubelet            Container image "10.0.0.55:80/mykubernetes/busybox:v0.1" already present on machine
  Normal   Created    2s (x2 over 43s)   kubelet            Created container liveness-exec-container
  Normal   Started    1s (x2 over 43s)   kubelet            Started container liveness-exec-container
[20:13:10 root@master1 pod]#kubectl get pod -o wide
NAME                READY   STATUS    RESTARTS      AGE   IP            NODE               NOMINATED NODE   READINESS GATES
liveness-exec-pod   1/1     Running   1 (13s ago)   55s   10.244.3.11   node1.noisedu.cn   <none>           <none>

########### liveness probe 2 - exec
[21:51:05 root@master1 pod]#kubectl apply -f 12-pod-liveness-exec.yaml 
pod/liveness-exec-demo created
[21:51:14 root@master1 pod]#kubectl get pod
NAME                 READY   STATUS    RESTARTS   AGE
liveness-exec-demo   1/1     Running   0          5s
[21:51:19 root@master1 pod]#kubectl get pod -o wide
NAME                 READY   STATUS    RESTARTS   AGE   IP            NODE               NOMINATED NODE   READINESS GATES
liveness-exec-demo   1/1     Running   0          15s   10.244.4.52   node2.noisedu.cn   <none>           <none>
[21:51:29 root@master1 pod]#curl 10.244.4.52 
kubernetes pod-test v0.1!! ClientIP: 10.0.0.50, ServerName: liveness-exec-demo, ServerIP: 10.244.4.52!
[21:51:35 root@master1 pod]#cat 12-pod-liveness-exec.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: liveness-exec-demo
  namespace: default
spec:
  containers:
  - name: demo
    image: 10.0.0.55:80/mykubernetes/pod_test:v0.1
    imagePullPolicy: IfNotPresent
    livenessProbe:
      exec:
        command: ['/bin/sh', '-c', '[ "$(curl -s 127.0.0.1/livez)" == "OK" ]']
      initialDelaySeconds: 5
      timeoutSeconds: 1
      periodSeconds: 5
[21:51:44 root@master1 pod]#curl 10.244.4.52/livez 
OK[21:51:53 root@master1 pod]#curl -XPOST -d'livez=123' 10.244.4.52/livez
[21:52:46 root@master1 pod]#curl 10.244.4.52/livez 
123[21:52:58 root@master1 pokubectl get pod -o wide
NAME                 READY   STATUS    RESTARTS   AGE    IP            NODE               NOMINATED NODE   READINESS GATES
liveness-exec-demo   1/1     Running   0          117s   10.244.4.52   node2.noisedu.cn   <none>           <none>
[21:53:11 root@master1 pod]#kubectl describe pod liveness-exec-demo 
Name:         liveness-exec-demo
Namespace:    default
Priority:     0
Node:         node2.noisedu.cn/10.0.0.54
Start Time:   Sun, 05 Dec 2021 21:51:14 +0800
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           10.244.4.52
IPs:
  IP:  10.244.4.52
Containers:
  demo:
    Container ID:   docker://c345f318e4c85a13d18a73bd7b01bc8ca5b65c7c8f5ee5046bba753903539710
    Image:          10.0.0.55:80/mykubernetes/pod_test:v0.1
    Image ID:       docker-pullable://10.0.0.55:80/mykubernetes/pod_test@sha256:54402cda2ef15f45e4aafe98a5e56d4de076e3d4100c2a1bf1b780c787372fed
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Sun, 05 Dec 2021 21:51:15 +0800
    Ready:          True
    Restart Count:  0
    Liveness:       exec [/bin/sh -c [ "$(curl -s 127.0.0.1/livez)" == "OK" ]] delay=5s timeout=1s period=5s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-tq9tz (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  kube-api-access-tq9tz:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                 From               Message
  ----     ------     ----                ----               -------
  Normal   Scheduled  2m3s                default-scheduler  Successfully assigned default/liveness-exec-demo to node2.noisedu.cn
  Normal   Pulled     2m2s                kubelet            Container image "10.0.0.55:80/mykubernetes/pod_test:v0.1" already present on machine
  Normal   Created    2m2s                kubelet            Created container demo
  Normal   Started    2m2s                kubelet            Started container demo
  Warning  Unhealthy  18s (x4 over 112s)  kubelet            Liveness probe failed:
  Normal   Killing    18s                 kubelet            Container demo failed liveness probe, will be restarted
[21:53:17 root@master1 pod]#kubectl get pod -o wide
NAME                 READY   STATUS    RESTARTS      AGE     IP            NODE               NOMINATED NODE   READINESS GATES
liveness-exec-demo   1/1     Running   1 (69s ago)   3m24s   10.244.4.52   node2.noisedu.cn   <none>           <none>
[21:54:38 root@master1 pod]#curl 10.244.4.52/livez 
OK[21:54:44 root@master1 pod]#

########### liveness probe 3 - httpGet
[22:11:47 root@master1 pod]#kubectl apply -f 13-pod-liveness-httpget.yaml 
pod/liveness-httpget-pod created
[22:11:53 root@master1 pod]#kubectl describe pod liveness-httpget-pod 
Name:         liveness-httpget-pod
Namespace:    default
Priority:     0
Node:         node1.noisedu.cn/10.0.0.53
Start Time:   Sun, 05 Dec 2021 22:11:53 +0800
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           10.244.3.14
IPs:
  IP:  10.244.3.14
Containers:
  liveness-httpget-container:
    Container ID:   docker://5ac2d44091963997d5b1ae4c3cbb04896d1b230c9c88ac18754da5feb3440c05
    Image:          10.0.0.55:80/mykubernetes/pod_test:v0.1
    Image ID:       docker-pullable://10.0.0.55:80/mykubernetes/pod_test@sha256:54402cda2ef15f45e4aafe98a5e56d4de076e3d4100c2a1bf1b780c787372fed
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Sun, 05 Dec 2021 22:11:55 +0800
    Ready:          True
    Restart Count:  0
    Liveness:       http-get http://:http/index.html delay=1s timeout=1s period=3s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-nwlgp (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  kube-api-access-nwlgp:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age              From               Message
  ----     ------     ----             ----               -------
  Normal   Scheduled  9s               default-scheduler  Successfully assigned default/liveness-httpget-pod to node1.noisedu.cn
  Normal   Pulled     7s               kubelet            Container image "10.0.0.55:80/mykubernetes/pod_test:v0.1" already present on machine
  Normal   Created    7s               kubelet            Created container liveness-httpget-container
  Normal   Started    7s               kubelet            Started container liveness-httpget-container
  Warning  Unhealthy  3s (x2 over 6s)  kubelet            Liveness probe failed: HTTP probe failed with statuscode: 404
[22:12:02 root@master1 pod]#kubectl get pod -o wide
NAME                   READY   STATUS    RESTARTS      AGE   IP            NODE               NOMINATED NODE   READINESS GATES
liveness-httpget-pod   1/1     Running   1 (11s ago)   50s   10.244.3.14   node1.noisedu.cn   <none>           <none>

########### readness probe 1 - httpGet
[22:27:28 root@master1 pod]#kubectl get pod
NAME                    READY   STATUS             RESTARTS        AGE
readiness-httpget-pod   0/1     CrashLoopBackOff   8 (4m32s ago)   20m
[22:47:54 root@master1 pod]#cat 15-pod-readness-httpget.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: readiness-httpget-pod
spec:
  containers:
  - name: readiness-httpget-container
    image: 10.0.0.55:80/mykubernetes/busybox:v0.1
    ports:
    - name: http
      containerPort: 80
    readinessProbe:
      httpGet:
        port: http
        path: /index.html
      initialDelaySeconds: 1
      periodSeconds: 3


########### readness probe 2 - httpGet
[22:48:49 root@master1 pod]#cat 16-pod-readness-httpget.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: readiness-httpget-demo
  namespace: default
spec:
  containers:
  - name: demo
    image: 10.0.0.19:80/mykubernetes/pod_test:v0.1
    imagePullPolicy: IfNotPresent
    readinessProbe:
      httpGet:
        path: '/readyz'
        port: 80
        scheme: HTTP
      initialDelaySeconds: 15
      timeoutSeconds: 2
      periodSeconds: 5
      failureThreshold: 3
  restartPolicy: Always
[22:48:50 root@master1 pod]#vim 16-pod-readness-httpget.yaml 
[22:49:02 root@master1 pod]#vim 16-pod-readness-httpget.yaml 
[22:49:13 root@master1 pod]#kubectl apply -f 16-pod-readness-httpget.yaml 
pod/readiness-httpget-demo created
[22:49:27 root@master1 pod]#kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
readiness-httpget-demo   0/1     Running   0          5s
[22:49:32 root@master1 pod]#kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
readiness-httpget-demo   0/1     Running   0          6s
[22:49:33 root@master1 pod]#kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
readiness-httpget-demo   0/1     Running   0          7s
[22:49:34 root@master1 pod]#kubectl describe pod readiness-httpget-demo 
Name:         readiness-httpget-demo
Namespace:    default
Priority:     0
Node:         node2.noisedu.cn/10.0.0.54
Start Time:   Sun, 05 Dec 2021 22:49:27 +0800
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           10.244.4.54
IPs:
  IP:  10.244.4.54
Containers:
  demo:
    Container ID:   docker://c01d87e0cbee86ec3d5be30d61738226011389d64b6a1d8bcd04e9e411a9f899
    Image:          10.0.0.55:80/mykubernetes/pod_test:v0.1
    Image ID:       docker-pullable://10.0.0.55:80/mykubernetes/pod_test@sha256:54402cda2ef15f45e4aafe98a5e56d4de076e3d4100c2a1bf1b780c787372fed
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Sun, 05 Dec 2021 22:49:28 +0800
    Ready:          False
    Restart Count:  0
    Readiness:      http-get http://:80/readyz delay=15s timeout=2s period=5s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-hbnc7 (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Volumes:
  kube-api-access-hbnc7:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  20s   default-scheduler  Successfully assigned default/readiness-httpget-demo to node2.noisedu.cn
  Normal  Pulled     19s   kubelet            Container image "10.0.0.55:80/mykubernetes/pod_test:v0.1" already present on machine
  Normal  Created    19s   kubelet            Created container demo
  Normal  Started    19s   kubelet            Started container demo
[22:49:47 root@master1 pod]#kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
readiness-httpget-demo   0/1     Running   0          31s


########### liveness & readness probe 1 - tcpsocket

[22:55:44 root@master1 pod]#kubectl get pod -o wide
NAME                      READY   STATUS    RESTARTS   AGE   IP            NODE               NOMINATED NODE   READINESS GATES
readiness-tcpsocket-pod   1/1     Running   0          21s   10.244.3.15   node1.noisedu.cn   <none>           <none>
[22:55:47 root@master1 pod]#curl 10.244.3.15
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
[22:55:53 root@master1 pod]#cat 17-pod-readness-tcpsocket.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: readiness-tcpsocket-pod
spec:
  containers:
  - name: readiness-tcpsocket-pod
    image: 10.0.0.55:80/mykubernetes/nginx:1.21.3
    readinessProbe:
      tcpSocket:
        port: 80
      initialDelaySeconds: 5
      periodSeconds: 10
    livenessProbe:
      tcpSocket:
        port: 80
      initialDelaySeconds: 15
      periodSeconds: 20
	  
	  
########### liveness & readness probe 2 - tcpsocket

[22:57:37 root@master1 pod]#cat 18-pod-liveness-tcpsocket.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: liveness-tcpsocket-demo
  namespace: default
spec:
  containers:
  - name: demo
    image: 10.0.0.55:80/mykubernetes/pod_test:v0.1
    imagePullPolicy: IfNotPresent
    ports:
    - name: http
      containerPort: 80
    securityContext:
      capabilities:
        add:
        - NET_ADMIN
    livenessProbe:
      tcpSocket:
        port: http
      periodSeconds: 5
      initialDelaySeconds: 5
[22:57:43 root@master1 pod]#kubectl apply -f 18-pod-liveness-tcpsocket.yaml 
pod/liveness-tcpsocket-demo created
[22:57:50 root@master1 pod]#kubectl get pod -o wide
NAME                      READY   STATUS    RESTARTS   AGE   IP            NODE               NOMINATED NODE   READINESS GATES
liveness-tcpsocket-demo   1/1     Running   0          8s    10.244.3.16   node1.noisedu.cn   <none>           <none>
[22:57:58 root@master1 pod]#kubectl describe pod liveness-tcpsocket-demo 
Name:         liveness-tcpsocket-demo
Namespace:    default
Priority:     0
Node:         node1.noisedu.cn/10.0.0.53
Start Time:   Sun, 05 Dec 2021 22:57:50 +0800
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           10.244.3.16
IPs:
  IP:  10.244.3.16
Containers:
  demo:
    Container ID:   docker://0b150f9af9d752acc6a181ea17f40a098a9e5584f0ea91a1ef369b3b6ea8dc6b
    Image:          10.0.0.55:80/mykubernetes/pod_test:v0.1
    Image ID:       docker-pullable://10.0.0.55:80/mykubernetes/pod_test@sha256:54402cda2ef15f45e4aafe98a5e56d4de076e3d4100c2a1bf1b780c787372fed
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Sun, 05 Dec 2021 22:57:51 +0800
    Ready:          True
    Restart Count:  0
    Liveness:       tcp-socket :http delay=5s timeout=1s period=5s #success=1 #failure=3
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-tv7d2 (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  kube-api-access-tv7d2:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  20s   default-scheduler  Successfully assigned default/liveness-tcpsocket-demo to node1.noisedu.cn
  Normal  Pulled     20s   kubelet            Container image "10.0.0.55:80/mykubernetes/pod_test:v0.1" already present on machine
  Normal  Created    19s   kubelet            Created container demo
  Normal  Started    19s   kubelet            Started container demo
  
  
########### resource limit - cpu,memory

[23:01:36 root@master1 pod]#cat 19-pod-limit-request.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx-test
spec:
  containers:
  - name: nginx
    image: 10.0.0.55:80/mykubernetes/nginx:1.21.3
    imagePullPolicy: IfNotPresent
    resources:
      requests:
        memory: "1900Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"
		
[23:01:38 root@master1 pod]#cat 20-pod-limitrange.yaml   --> 全局资源控制文件
apiVersion: v1
kind: LimitRange
metadata:
  name: limit-mem-cpu-per-container
spec:
  limits:
  - max:
      cpu: "800m"
      memory: "1Gi"
    min:
      cpu: "100m"
      memory: "99Mi"
    default:
      cpu: "700m"
      memory: "900Mi"
    defaultRequest:
      cpu: "110m"
      memory: "111Mi"
    type: Container
	
[23:01:41 root@master1 pod]#cat 21-pod-qos-guaranteed.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: qos-demo
  namespace: qos-example
spec:
  containers:
  - name: qos-demo-ctr
    image: 10.0.0.55:80/mykubernetes/nginx:1.21.3
    resources:
      limits:
        memory: "200Mi"
        cpu: "700m"
      requests:
        memory: "200Mi"
        cpu: "700m"

  

posted @ 2021-12-05 23:05  每天都在学习的自己  阅读(719)  评论(0)    收藏  举报