Controlla l'idoneità del cluster ibrido
Prima di applicare la configurazione e installare i grafici Helm ibridi, devi verifica che il cluster Kubernetes sia pronto per l'installazione ibrida di Apigee.
Per verificare l'idoneità del tuo cluster, creerai un file YAML con un job Kubernetes
e applicare il file con i comandi kubectl
per controllare il cluster.
Potrai quindi controllare lo stato del job di test Kubernetes con un comando kubectl get jobs
.
- Verifica che
kubectl
sia impostato sul contesto corretto utilizzando il seguente comando. Il contesto attuale deve essere impostato sul cluster in cui stai eseguendo il deployment di Apigee hybrid.kubectl config current-context
Il risultato dovrebbe includere il nome del cluster in cui stai eseguendo il deployment di Apigee hybrid. Per Ad esempio, su GKE, il nome del contesto è di solito nel formato
gke_project-id_cluster-location_cluster-name
, come tra:gke_my-project_us-central1_my-cluster
Se il nome del cluster dei nomi nel contesto non corrisponde, il comando seguente riceverà
gcloud
credenziali del cluster e imposta il contestokubectl
:Cluster a livello di regione
gcloud container clusters get-credentials $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID
Cluster di zona
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID
- Nella directory helm-charts, crea una directory
cluster-check
:mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
- Nella directory
$APIGEE_HELM_CHARTS_HOME/cluster-check
, crea un file denominatoapigee-k8s-cluster-ready-check.yaml
con i seguenti contenuti: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.1 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
- Applica
apigee-k8s-cluster-ready-check.yaml
con quanto segue Comandokubectl
. Verrà eseguito il test:kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
L'output dovrebbe mostrare che l'account di servizio e il job sono stati creati. Ad esempio:
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 - Controlla lo stato del job Kubernetes con il seguente comando:
kubectl get jobs apigee-k8s-cluster-ready-check
Se il cluster è pronto, l'output dovrebbe essere simile a questo:
NAME COMPLETIONS DURATION AGE apigee-k8s-cluster-ready-check 1/1 8s 1h23m
Se il test non è riuscito e il cluster non è pronto, l'output sarà simile a questo:
NAME COMPLETIONS DURATION AGE apigee-k8s-cluster-ready-check 0/1 44s 44s
Cerca il numero di completamenti:
- 1/1 Operazione riuscita, il tuo cluster è pronto per l'installazione ibrida di Apigee.
- 0/1 Il test non è riuscito. Il cluster non è pronto. Procedi con i seguenti passaggi per risolvere i problemi del cluster.
- Se il test non è riuscito, controlla i log con i comandi seguenti.
- Ottieni il nome del pod per il job di pre-controllo del cluster:
kubectl get pods | grep apigee-k8s-cluster-ready-check
- Recupera i log di Kubernetes per il pod:
kubectl logs pod_name
Dove pod_name è il nome del pod apigee-k8s-cluster-ready-check.
- Ottieni il nome del pod per il job di pre-controllo del cluster:
- Esegui la pulizia prima di procedere con il passaggio successivo. Elimina il job Kubernetes con il seguente codice
:
kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
L'output dovrebbe mostrare che l'account di servizio e il job sono stati eliminati. Ad esempio:
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
Hai ora verificato che il tuo cluster ibrido Apigee sia pronto. Ora installiamo i grafici e applicare la configurazione al runtime ibrido.
Risoluzione dei problemi
- Controllo DNS Cassandra: se trovi log di errore simili a
DNS resolution was successful but IP doesn't match POD IP
,could not resolve hostname
oerror determining hostname
indica che il DNS del cluster non è configurato correttamente per una configurazione multiregionale. Puoi ignorare questo errore se non prevedi di configurare più regioni. - Controllo della connettività del piano di controllo: se trovi log di errore simili a
error creating TCP connection with host
, devi risolvere il problema di connettività da cluster a apigee.googleapis.com ed esegui nuovamente il job.