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
.
- 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 denkubectl
-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
- Erstellen Sie im Helm-Diagrammverzeichnis ein
cluster-check
-Verzeichnis:mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
- Erstellen Sie im Verzeichnis
$APIGEE_HELM_CHARTS_HOME/cluster-check
eine Datei namensapigee-k8s-cluster-ready-check.yaml
mit folgendem Inhalt:apiVersion: v1 kind: ServiceAccount metadata: name: apigee-k8s-cluster-ready-check --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: cluster-check-admin roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - apiGroup: "" kind: ServiceAccount namespace: default 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.3 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
- Wenden Sie
apigee-k8s-cluster-ready-check.yaml
mit dem folgendenkubectl
-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. Beispiele:
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 - 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.
- Wenn der Test nicht erfolgreich war, prüfen Sie die Logs mit den folgenden Befehlen.
- Rufen Sie den Namen des Pods für den Pre-Check-Job des Clusters ab:
kubectl get pods | grep apigee-k8s-cluster-ready-check
- 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.
- Rufen Sie den Namen des Pods für den Pre-Check-Job des Clusters ab:
- 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
- Cassandra-DNS-Prüfung: Wenn Sie Fehlerlogs finden, die
DNS resolution was successful but IP doesn't match POD IP
,could not resolve hostname
odererror 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. - 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.