Controllare 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 corrente deve essere impostato sul cluster in cui esegui 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. Ad esempio, su GKE, il nome del contesto è in genere nel formato
gke_project-id_cluster-location_cluster-name
, come in:gke_my-project_us-central1_my-cluster
Se il nome del cluster nel contesto non corrisponde, il seguente comando recupererà le credenziali
gcloud
del cluster e imposterà il contestokubectl
:Cluster a livello di regione
gcloud container clusters get-credentials $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID
Cluster zonali
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 il seguente contenuto: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.13.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 il seguentekubectl
comando. Verrà eseguito il test:kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
L'output dovrebbe indicare 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 cluster è pronto per l'installazione di Apigee hybrid.
- 0/1 Il test non è riuscito. Il cluster non è pronto. Per risolvere il problema, procedi nel seguente modo.
- Se il test non è riuscito, controlla i log con i comandi seguenti.
- Recupera il nome del pod per il job di precontrollo 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.
- Recupera il nome del pod per il job di precontrollo del cluster:
- Ripulisci prima di procedere con il passaggio successivo. Elimina il job Kubernetes con il seguente
comando:
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
Ora hai verificato che il tuo cluster Apigee hybrid è pronto. Ora installiamo i grafici e applicare la configurazione al runtime ibrido.
Risoluzione dei problemi
- Controllo DNS di 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
, significa che il DNS del tuo cluster non è configurato correttamente per una configurazione multiregione. 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.