Kubernetes の readiness プローブを構成する(省略可)
このページでは、 Google Cloud ヘルスチェック インフラストラクチャで Cloud Service Mesh を使用して Kubernetes プローブと readiness ゲートを構成する方法について説明します。
前提条件
このガイドは、以下がすでに行われていることを前提としています。
CSM を使用した透過的ヘルスチェック
Cloud Service Mesh Gateway API で、透過的ヘルスチェックが提供されるようになりました。これは、Kubernetes の readiness ステータス データと統合されたユニバーサル ヘルスチェックで、準備完了とマークされた Pod へのトラフィック フローを有効にします。この機能は、HTTP サービスと gRPC サービスの両方で使用できます。
Cloud Service Mesh は、Kubernetes Pod のステータスを Google ヘルスチェック インフラストラクチャに直接公開します。そのため、Pod の readinessProbe に使用しているのと同じ構成が Google ロード バランシング ヘルスチェック インフラストラクチャに透過的に渡され、ヘルスチェックの状態が readiness プローブの状態と調整されます。これは、Transparent Health Checker というコンポーネントを使用して行われます。このコンポーネントは、Pod のヘルス ステータスを提供するすべてのノードで実行されます。
Cloud Service Mesh は、ヘルスチェック インフラストラクチャのソース範囲から送信されるヘルスチェック トラフィックを、予約済みポート(7877)に送信するように構成します。このトラフィックは、ノード上のローカルで透過的ヘルスチェック サーバーにリダイレクトされます。サーバーは、Kubernetes Pod readiness の現在の状態に一致するヘルス ステータスを返します。Kubernetes Pod へのトラフィック フローは、各 Pod に設定された Ready ステータスに基づいて制御されます。必要に応じて、readiness プローブと readiness ゲートの値で「Ready」ステータスを制御できます。透過的ヘルスチェックは、すべての Kubernetes 条件の論理演算子 AND に基づいてステータスを報告します。
Kubernetes プローブ、readiness ゲート、およびその他のチェックを構成して、Kubernetes Pod の readiness ステータスに影響を与えることができます。
HTTP サービスの readiness プローブを構成する(省略可)
必要に応じて、このセクションを whereami サービスの Deployment の 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 の Deployment の 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