Kubernetes-Bereitschaftsprüfungen konfigurieren (optional)

Auf dieser Seite wird beschrieben, wie Sie Cloud Service Mesh mit der Google Cloud-Infrastruktur für Systemdiagnosen verwenden, um Kubernetes-Prüfungen und Readiness-Gates zu konfigurieren.

Vorbereitung

In diesem Leitfaden wird davon ausgegangen, dass Sie bereits:

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 als bereit gekennzeichneten Pods zu ermöglichen. 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-Load-Balancing-Systemdiagnoseinfrastruktur ü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 an den transparenten Systemdiagnose-Server lokal auf dem Knoten 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 die Option „Bereit“ Status mit den Werten der Bereitschaftsprüfung und der Readiness-Gatter. Die transparente Systemdiagnose meldet den Status basierend auf einem logischen Operator UND 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: 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

Bereitschaftsprü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