1.LivenessProbe(存活檢查)
LivenessProbe:表示container是否處於live狀態。如果 LivenessProbe失敗,LivenessProbe將會通知kubelet對應的container不健康了。隨后kubelet將kill掉 container,並根據
RestarPolicy進行進一步的操作。默認情況下LivenessProbe在第一次檢測之前初始化值為 Success,如果container沒有提供LivenessProbe,則也認為是Success;
2.ReadinessProbe(就緒檢查)
ReadinessProbe:表示container是否以及處於可接受service請求的狀態了。如 果ReadinessProbe失敗,endpoints controller將會從service所匹配到的endpoint列表中移除關於這個
container的IP地址。因此對於Service匹配到的 endpoint的維護其核心是ReadinessProbe。默認Readiness的初始值是Failure,如果一個container沒有提供 Readiness則被認為是Success
3.參數詳解
對於LivenessProbe和ReadinessProbe用法都一樣,擁有相同的參數和相同的監測方式。【檢查流程如下】 1)HTTP探針在httpGet上的配置項: #host:主機名,默認為pod的IP。 #httpHeaders【HTTP頭】:在HTTP請求中設置的自定義標頭。 HTTP允許重復的請求頭。 path【路徑】:探針的路徑。 port【端口】:端口的名稱或編號。數字必須在1到65535的范圍內。 scheme【協議】:用於連接主機的方案(HTTP或HTTPS)。默認為HTTP。 2)initialDelaySeconds【延遲探測時間(秒)】:用來表示初始化延遲的時間,也就是告訴監測從多久之后開始運行,單位是秒 3)periodSeconds【執行探測頻率(秒)】:監測開始后,每隔10秒執行一次 路徑(健康檢測頁面) 監測。 4)timeoutSeconds【超時時間(秒)】: 用來表示監測的超時時間,如果超過這個時長后,則認為監測失敗(若監測路徑1秒后沒有返回,則認為超時) 5)failureThreshold【不健康伐值】:當Pod成功啟動且檢查失敗且連續達到設定次數時,放棄生存檢查意味着重新啟動Pod。(放棄就緒檢查,Pod將被標記為未就緒。 默認為3.最小值為1) 6)successThreshold【健康伐值】:失敗后檢查成功的最小連續成功次數。默認為1.活躍度必須為1。最小值為1。即監測路徑健康后完成本次檢查。
4.阿里雲web端設置
存活檢查

就緒檢查

5.yaml文件
apiVersion: apps/v1 kind: Deployment metadata: labels: app: beta-es-provider-course appname: dev-es-provider-course env: beta name: beta-es-provider-course namespace: beta-es spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: beta-es-provider-course strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: labels: app: beta-es-provider-course appname: beta-es-provider-course env: beta spec: affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: env-beta operator: In values: - beta weight: 80 - preference: matchExpressions: - key: env-alpha operator: In values: - alpha weight: 20 containers: - image: >- registry.aliyuncs.com/wx-k8s/es-provider-course:beta-es-provider-course-latest imagePullPolicy: Always lifecycle: postStart: exec: command: - /bin/sh - '-c' - >- mkdir -p /home/mount/${HOSTNAME} && ln -s /home/mount/${HOSTNAME} /home/wx/services/es-provider-course/logs livenessProbe: failureThreshold: 5 httpGet: path: /actuator/health port: 7005 scheme: HTTP initialDelaySeconds: 300 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 name: beta-es-provider-course ports: - containerPort: 7005 name: http protocol: TCP readinessProbe: failureThreshold: 5 httpGet: path: /actuator/health port: 7005 scheme: HTTP initialDelaySeconds: 300 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: limits: cpu: '1' memory: 600Mi requests: cpu: 10m memory: 600Mi terminationMessagePath: /dev/termination-log terminationMessagePolicy: File volumeMounts: - mountPath: /home/mount name: volume-service-dir - mountPath: /etc/localtime name: volume-localtime dnsPolicy: ClusterFirst imagePullSecrets: - name: pull-image restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30 volumes: - hostPath: path: /home/wx/services/beta/es-provider-course type: '' name: volume-service-dir - hostPath: path: /etc/localtime type: '' name: volume-localtime