Kubernetes-Bereitschaftsprüfungen konfigurieren (optional)

Auf dieser Seite wird beschrieben, wie Sie Cloud Service Mesh mit der Google Cloud -Systemdiagnoseinfrastruktur verwenden, um Kubernetes-Sonden und Bereitschaftsgrenzwerte zu konfigurieren.

Vorbereitung

Sie sollten Folgendes bereits haben:

Transparente Systemüberprüfungen mit CSM

Die Cloud Service Mesh Gateway API bietet jetzt transparente Systemdiagnosen, d. h. universelle Systemdiagnosen, die in Kubernetes-Bereitschaftsstatusdaten eingebunden sind, um den Trafficfluss zu den Pods zu ermöglichen, die als „Bereit“ gekennzeichnet sind. Diese Funktion ist sowohl für HTTP- als auch für gRPC-Dienste verfügbar.

Cloud Service Mesh stellt den Status Ihrer Kubernetes-Pods direkt der Google-Systemdiagnoseinfrastruktur zur Verfügung. Die Konfiguration, die Sie für Pod-Readiness-Prüfungen verwenden, wird also transparent an die Google-Systemdiagnoseinfrastruktur für das Load Balancing übergeben und der Systemdiagnosestatus wird mit dem Status der Bereitschaftsprüfung abgeglichen. Dazu wird die Komponente „Transparent Health Checker“ verwendet, die auf jedem Knoten ausgeführt wird, der den Gesundheitsstatus des Pods bereitstellt.

Cloud Service Mesh konfiguriert den Systemdiagnose-Traffic, der von den Quellbereichen der Systemdiagnoseinfrastruktur gesendet wird, so, dass er an einen reservierten Port (7877) gesendet wird. Dieser Traffic wird lokal auf dem Knoten an den Server für die transparente Systemdiagnose weitergeleitet. Der Server antwortet mit einem Betriebsstatus, der dem aktuellen Status der Kubernetes-Pod-Bereitschaft entspricht. Der Trafficfluss zu Kubernetes-Pods wird basierend auf dem für jeden Pod festgelegten Status „Bereit“ gesteuert. Optional können Sie den Status „Bereit“ mit den Werten für die Bereitschaftsprüfung und die Bereitschaftsgrenzwerte steuern. Die transparente Systemdiagnose meldet den Status basierend auf einem logischen UND-Operator aller Kubernetes-Bedingungen.

Sie können Kubernetes-Prüfungen, Bereitschaftsgrenzwerte und andere Prüfungen konfigurieren, die den Bereitschaftsstatus des Kubernetes-Pods beeinflussen.

Bereitschaftsprüfungen für einen HTTP-Dienst konfigurieren (optional)

Sie können diesen Abschnitt optional der Bereitstellung für den whereami-Dienst HTTP-Diensteinrichtung hinzufügen.

...
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

Bereitschaftsüberprüfungen für einen gRPC-Dienst konfigurieren (optional)

Sie können diesen Abschnitt optional der gRPC-Diensteinrichtung für die Bereitstellung für psm-grpc-server hinzufügen.

...
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