Schritt 10: Clusterbereitschaft prüfen

Bereitschaft von Hybridclustern prüfen

Bevor Sie Ihre Konfiguration anwenden und die Hybrid-Helm-Diagramme installieren, sollten Sie prüfen, ob Ihr Kubernetes-Cluster für die Installation von Apigee Hybrid bereit ist.

Um die Bereitschaft Ihres Clusters zu prüfen, erstellen Sie eine YAML-Datei mit einer Kubernetes-Jobdefinition und wenden diese Datei mit kubectl-Befehlen an. Anschließend prüfen Sie den Status des Kubernetes-Testjobs mit dem Befehl kubectl get jobs.

  1. Prüfen Sie mit dem folgenden Befehl, ob kubectl auf den richtigen Kontext eingestellt ist. Der aktuelle Kontext sollte auf den Cluster eingestellt werden, für den Sie Apigee Hybrid bereitstellen.
    kubectl config current-context

    Das Ergebnis sollte den Namen des Clusters enthalten, in dem Sie Apigee Hybrid bereitstellen. Bei GKE hat der Kontextname beispielsweise normalerweise das Format gke_project-id_cluster-location_cluster-name, wie in:

    gke_my-project_us-central1_my-cluster

    Wenn der Clustername im Kontext nicht übereinstimmt, ruft der folgende Befehl die gcloud-Anmeldedaten des Clusters ab und legt den kubectl-Kontext fest:

    Regionale Cluster

    gcloud container clusters get-credentials $CLUSTER_NAME \
    --region $CLUSTER_LOCATION \
    --project $PROJECT_ID

    Zonale Cluster

    gcloud container clusters get-credentials $CLUSTER_NAME \
    --zone $CLUSTER_LOCATION \
    --project $PROJECT_ID
  2. Erstellen Sie im Helm-Diagrammverzeichnis ein cluster-check-Verzeichnis:
    mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
  3. Erstellen Sie im Verzeichnis $APIGEE_HELM_CHARTS_HOME/cluster-check eine Datei namens apigee-k8s-cluster-ready-check.yaml mit folgendem Inhalt:
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: apigee-k8s-cluster-ready-check
    ---
    apiVersion: batch/v1
    kind: Job
    metadata:
      name: apigee-k8s-cluster-ready-check
    spec:
      template:
        spec:
          hostNetwork: true
          serviceAccountName: apigee-k8s-cluster-ready-check
          containers:
            - name: manager
              image: gcr.io/apigee-release/hybrid/apigee-operators:1.12.0
              command:
                - /manager
              args:
              - --k8s-cluster-ready-check
              env:
              - name: POD_IP
                valueFrom:
                  fieldRef:
                    fieldPath: status.podIP
              securityContext:
                runAsGroup: 998
                runAsNonRoot: true
                runAsUser: 999
          restartPolicy: Never
      backoffLimit: 1
    
  4. Wenden Sie apigee-k8s-cluster-ready-check.yaml mit dem folgenden kubectl-Befehl an. Dadurch wird der Test ausgeführt:
    kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml

    Die Ausgabe sollte zeigen, dass das Dienstkonto und der Job erstellt wurden. Beispiel:

    kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
    serviceaccount/apigee-k8s-cluster-ready-check created
    job.batch/apigee-k8s-cluster-ready-check created
  5. Prüfen Sie den Status des Kubernetes-Jobs mit dem folgenden Befehl:
    kubectl get jobs apigee-k8s-cluster-ready-check

    Wenn Ihr Cluster bereit ist, sollte die Ausgabe in etwa so aussehen:

    NAME                            COMPLETIONS   DURATION   AGE
    apigee-k8s-cluster-ready-check  1/1           8s         1h23m

    Wenn der Test fehlgeschlagen ist und der Cluster nicht bereit ist, sollte die Ausgabe in etwa so aussehen:

    NAME                            COMPLETIONS   DURATION   AGE
    apigee-k8s-cluster-ready-check  0/1           44s         44s

    Suchen Sie nach der Anzahl der Abschlüsse:

    • 1/1 Erfolg, Ihr Cluster ist für die Apigee-Hybrid-Installation bereit.
    • 0/1 Der Test ist fehlgeschlagen. Der Cluster ist nicht bereit. Fahren Sie mit den folgenden Schritten fort, um Probleme mit dem Cluster zu beheben.

  6. Wenn der Test nicht erfolgreich war, prüfen Sie die Logs mit den folgenden Befehlen.
    1. Rufen Sie den Namen des Pods für den Pre-Check-Job des Clusters ab:
      kubectl get pods | grep apigee-k8s-cluster-ready-check
    2. Rufen Sie die Kubernetes-Logs für den Pod ab:
      kubectl logs pod_name

      Dabei ist pod_name der Name des Pods apigee-k8s-cluster-ready-check.

  7. Führen Sie eine Bereinigung durch, bevor Sie mit dem nächsten Schritt fortfahren. Löschen Sie den Kubernetes-Job mit dem folgenden Befehl:
    kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml

    Die Ausgabe sollte zeigen, dass das Dienstkonto und der Job gelöscht wurden. Beispiel:

    kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
    serviceaccount "apigee-k8s-cluster-ready-check" deleted
    job.batch "apigee-k8s-cluster-ready-check" deleted

Sie haben nun sichergestellt, dass Ihr Apigee Hybrid-Cluster bereit ist. Als Nächstes installieren Sie die Diagramme, um Ihre Konfiguration auf die Hybridlaufzeit anzuwenden.

Fehlerbehebung

  1. Cassandra-DNS-Prüfung: Wenn Sie Fehlerlogs finden, die DNS resolution was successful but IP doesn't match POD IP, could not resolve hostname oder error determining hostname ähneln, bedeutet dies, dass Ihr Cluster-DNS für eine multiregionale Einrichtung nicht korrekt konfiguriert ist. Sie können diese Fehlermeldung ignorieren, wenn Sie nicht beabsichtigen, mehrere Regionen einzurichten.
  2. Konnektivitätsprüfung der Steuerungsebene: Wenn Sie Fehlerlogs wie error creating TCP connection with host finden, müssen Sie die Verbindung vom Cluster zu apigee.googleapis.com lösen und den Job noch einmal ausführen.

Nächster Schritt

1 2 3 4 5 6 7 8 9 10 (WEITER) Schritt 11: Apigee Hybrid mit Helm-Diagrammen installieren 12