Pod存活性探測

z597011036發表於2019-09-26

  Pod存活性探測:用於判斷容器是否處理"執行"狀態,如果檢測未透過,kubelet將會終止容器,根據啟動策略(restartPolicy)決定是否重啟,如果未定義容器預設為"Success"。存活性探測支援的方法有三種:ExecAction,TCPSocketAction,HTTPGetAction。


1.使用exec探測檔案存在

[root@k8s01 yaml]# kubectl explain pods.spec.containers.livenessProbe

[root@k8s01 yaml]# vim execaction.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: exec-execaction
  name: execaction
spec:
  containers:
  - name: execaction
    image: busybox:latest
    args: ["/bin/sh","-c","touch /tmp/test.txt"]        --容器啟動後建立test.txt檔案
    livenessProbe:
      exec:
        command: ["test","-e","/tmp/test.txt"]      --檢查test.txt檔案,如果存在Pod正常啟動,如果不存在Pod建立不成功

[root@k8s01 yaml]# kubectl apply -f execaction.yaml

pod/execaction created

[root@k8s01 yaml]#


2.使用tcp協議探測埠

[root@k8s01 yaml]# vim tcpaction.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: tcp-execaction
  name: tcpaction
spec:
  containers:
  - name: tcpaction
    image: nginx:latest
    ports:
    - name: http
      containerPort: 80    --暴露80埠
    livenessProbe:   
      tcpSocket:      --使用tcp探測
        port: http    --這裡可以寫協議或者埠,http預設為80埠

[root@k8s01 yaml]# kubectl apply -f  tcpaction.yaml
pod/tcpaction created
[root@k8s01 yaml]#


3.使用http協議探測服務

[root@k8s01 yaml]# vim httpaction.yaml

apiVersion: v1
kind: Pod
metadata:
  labels:
    test: http-execaction
  name: httpaction
spec:
  containers:
  - name: httpaction
    image: nginx:latest
    ports:
    - name: http
      containerPort: 80
    lifecycle:
      postStart:     --容器啟動之前啟動以下命令
        exec:
          command: ["/bin/sh","-c","echo 123 > /usr/share/nginx/html/test.html"]
    livenessProbe:
      httpGet:
        path: /test.html    --探測nginx是否正常訪問test.html頁面
        port: http

[root@k8s01 yaml]# kubectl  apply -f httpaction.yaml
pod/httpaction created
[root@k8s01 yaml]#


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25854343/viewspace-2658376/,如需轉載,請註明出處,否則將追究法律責任。

相關文章