iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 24
0

在前面我們一直不停的提到物件 Immutable 的重要性,因為只要物件是 Immutable 的,那只要系統異常都可以重新一份新的來取代,那要怎麼知道系統是正常還是異常呢?Kubernetes 的 LivenessReadiness 就是負責這重責大任的物件。

如果是正常,你可以在 GKE 的 workload 頁面,看到綠色的 icon。

局部範例

livenessProbe:
  httpGet:
    path: /
    port: 80
  # initialDelaySeconds: 5
  # timeoutSeconds: 1
  # periodSeconds: 30
  # failureThreshold: 3
readinessProbe:
  httpGet:
    path: /
    port: 80

Liveness probe

Liveness(活耀度) 的作用是確認 pod 是否正常的運行著,預設是每隔五秒就會檢查一次。

kubectl get pods
kubectl describe pod nginx-deployment-76f5d6ddc6-l4f8n

輸出的結果

...省略...
Liveness:     http-get http://:80/ delay=5s timeout=1s period=30s #success=1 #failure=3
Readiness:    http-get http://:80/ delay=0s timeout=1s period=10s #success=1 #failure=3
...省略...

Readiness probe

Readiness 的作用是確任容器是否已經就緒(啟動完成),可以開始接收外部的呼叫。

完整範例

nginx-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.7.9
          livenessProbe:
            httpGet:
              path: /
              port: 80
            initialDelaySeconds: 5
            timeoutSeconds: 1
            periodSeconds: 30
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /
              port: 80
          ports:
            - containerPort: 80

資料來源


上一篇
Day23 - 標籤 (label)
下一篇
Day25 - GKE 的 log 跟儀表板
系列文
誤入 DevOps 叢林的後端工程師30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言