Controllare l'idoneità del cluster ibrido
Prima di applicare la configurazione e installare i grafici Helm ibridi, devi verificare che il cluster Kubernetes sia pronto per l'installazione di Apigee Hybrid.
Per verificare la preparazione del cluster, creerai un file YAML con una definizione di Job Kubernetes e applicherai questo file con i comandi kubectl per controllare il cluster.
Quindi, controlla lo stato del job di test Kubernetes con un comando kubectl get jobs.
- Verifica che
kubectlsia 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 deve 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
gclouddel cluster e imposterà 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.yamlcon il seguente contenuto: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.4 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.yamlcon il seguente comandokubectl. Verrà eseguito il test:kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
L'output deve mostrare che il 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.yamlserviceaccount/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 avere un aspetto simile al seguente:
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. Procedi con i passaggi seguenti per risolvere i problemi del cluster.
- Se il test non è riuscito, controlla i log con i seguenti comandi.
- Recupera 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.
- Recupera il nome del pod per il job di pre-controllo del cluster:
- Pulisci prima di procedere al 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 deve mostrare che il 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.yamlserviceaccount "apigee-k8s-cluster-ready-check" deleted job.batch "apigee-k8s-cluster-ready-check" deleted
Ora hai verificato che il cluster Apigee hybrid sia pronto. Ora installiamo i grafici per applicare la configurazione al runtime di hybrid.
Risoluzione dei problemi
- Controllo DNS di Cassandra: se trovi log di errori simili a
DNS resolution was successful but IP doesn't match POD IP,could not resolve hostnameoerror determining hostname, significa che il DNS del cluster non è configurato correttamente per una configurazione multiregionale. Puoi ignorare questo errore se non intendi configurare più regioni. - Controllo della connettività del control plane: se trovi log di errori simili a
error creating TCP connection with hostdevi risolvere la connettività dal cluster ad apigee.googleapis.com ed eseguire nuovamente il job.