設定 Kubernetes 完備性探測功能 (選用)

本頁面說明如何搭配 Google Cloud 健康檢查基礎架構使用 Cloud Service Mesh,設定 Kubernetes 探測和就緒門檻。

事前準備

本指南假設您已具備以下條件:

透過 CSM 進行透明化健康檢查

Cloud Service Mesh Gateway API 現在提供透明健康檢查,也就是與 Kubernetes 就緒狀態資料整合的通用健康檢查,可將流量導向標示為就緒的 Pod。這項功能適用於 HTTP 和 gRPC 服務。

Cloud Service Mesh 會直接將 Kubernetes Pod 的狀態公開給 Google 健康狀態檢查基礎架構,因此您用於 Pod 就緒探針的相同設定會直接傳遞給 Google 負載平衡健康狀態檢查基礎架構,而健康狀態檢查狀態也會與就緒探針狀態保持一致。這項作業會使用名為「透明健康檢查器」的元件,該元件會在每個提供 Pod 健康狀態的節點上執行。

Cloud Service Mesh 會將從健康檢查基礎架構來源範圍傳送的健康檢查流量,設為傳送至預留的通訊埠 (7877)。這類流量會重新導向至節點中本機的透明健康狀態檢查伺服器。伺服器會傳回與 Kubernetes Pod 完備性目前狀態相符的健康狀態。系統會根據每個 Pod 的「就緒」狀態,控制流向 Kubernetes Pod 的流量。您可以選擇使用就緒探針和就緒門檻值控制「就緒」狀態。透明健康檢查會根據所有 Kubernetes 條件的邏輯運算子 AND 回報狀態。

您可以設定 Kubernetes 探測功能、完備性門檻和其他影響 Kubernetes Pod 完備性狀態的檢查項目。

設定 HTTP 服務的就緒探測器 (選用)

您可以選擇將此部分新增至 whereami 服務的HTTP 服務設定部署作業。

...
spec:
      containers:
      - name: whereami
        image: us-docker.pkg.dev/google-samples/containers/gke/whereami:v1
        ports:
        - containerPort: 8080
        readinessProbe:
          initialDelaySeconds: 1
          periodSeconds: 2
          timeoutSeconds: 1
          successThreshold: 1
          failureThreshold: 1
          httpGet:
            host:
            scheme: HTTP
            path: /
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 5

設定 gRPC 服務的 readiness 探測 (選用)

您可以選擇將這個部分新增至 psm-grpc-server 的gRPC 服務設定部署作業。

...
spec:
      containers:
      - name: psm-grpc-server
        image: ${IMAGE_NAME}
        imagePullPolicy: Always
        args:
          ${ARGS}
        ports:
          - containerPort: 50051
        readinessProbe:
          initialDelaySeconds: 1
          periodSeconds: 2
          timeoutSeconds: 1
          successThreshold: 1
          failureThreshold: 1
          grpc:
            port: 50051