配置 Kubernetes 就绪性探测(可选)

本页介绍了如何将 Cloud Service Mesh 与 Google Cloud 健康检查基础架构搭配使用,以配置 Kubernetes 探针和就绪门限。

前提条件

首先,本指南假定您已完成以下操作:

使用 CSM 透明地检查健康检查

Cloud Service Mesh Gateway API 现在提供透明健康检查,即与 Kubernetes 就绪状态数据集成的 Universal HealthChecks 可让流量流向标记为就绪的 Pod。此功能适用于 HTTP 和 gRPC 服务。

Cloud Service Mesh 会直接将 Kubernetes Pod 的状态公开给 Google 健康检查基础架构,因此您为 Pod readinessProbe 使用的配置将透明地传递给 Google 负载均衡健康检查基础架构,并且健康检查状态将与准备情况探测状态保持一致。此操作是使用名为透明健康检查器的组件来完成的,该组件会在将提供 Pod 健康状况的每个节点上运行。

Cloud Service Mesh 会将从健康检查基础架构源范围发送的健康检查流量配置为发送到预留端口 (7877)。此类流量会重定向到节点本地的透明健康检查服务器。服务器会响应一个与 Kubernetes Pod 就绪性的当前状态匹配的健康状态。流向 Kubernetes Pod 的流量根据每个 Pod 设置的就绪状态进行控制。您可以选择使用就绪性探测和就绪门限值来控制“就绪”状态。透明的健康检查将根据所有 Kubernetes 条件的逻辑运算符“与”来报告状态。

您可以配置 Kubernetes 探测、就绪性门控和其他影响 Kubernetes Pod 就绪状态的检查。

为 HTTP 服务配置就绪性探测(可选)

您可以选择将此部分添加到 whereami 服务的HTTP 服务设置部署中。

...
spec:
      containers:
      - name: whereami
        image: gcr.io/google-samples/whereami:v1.2.20
        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