配置 Kubernetes 就绪性探测(可选)
本页面介绍了如何将 Cloud Service Mesh 与 Google Cloud 健康检查基础设施搭配使用,以配置 Kubernetes 探测和就绪性门控。
前提条件
首先,本指南假定您已完成以下操作:
使用 CSM 进行透明健康检查
Cloud Service Mesh Gateway API 现在提供透明健康检查(即与 Kubernetes 就绪状态数据集成的通用健康检查),以便将流量发送到标记为就绪的 Pod。此功能适用于 HTTP 和 gRPC 服务。
Cloud Service Mesh 会将您的 Kubernetes Pod 的状态直接公开给 Google 健康检查基础设施,因此您用于 Pod readinessProbes 的相同配置会透明地传递给 Google 负载均衡健康检查基础设施,并且健康检查状态会与就绪探测状态保持一致。为此,系统会使用一个名为“Transparent Health Checker”的组件,该组件会在将提供 Pod 健康状态的每个节点上运行。
Cloud Service Mesh 会将从健康检查基础设施来源范围发送的健康检查流量配置为发送到预留端口 (7877)。此流量会重定向到节点本地的透明健康检查服务器。服务器会响应一个与 Kubernetes Pod 就绪性的当前状态匹配的健康状态。流向 Kubernetes Pod 的流量会根据在每个 Pod 上设置的“就绪”状态进行控制。您可以选择使用就绪性探测和就绪性门控值来控制“就绪”状态。透明健康检查将根据所有 Kubernetes 条件的逻辑运算符 AND 报告状态。
您可以配置会影响 Kubernetes Pod 就绪性状态的 Kubernetes 探测、就绪性门控和其他检查。
为 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 服务配置就绪性探测(可选)
您可以选择将此部分添加到 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