Passaggio 10: verifica la preparazione del cluster

Controllare l'idoneità del cluster ibrido

Prima di applicare la configurazione e installare i grafici Helm ibrida, devi verificare che il tuo cluster Kubernetes sia pronto per l'installazione di Apigee Hybrid.

Per verificare l'idoneità del cluster, crea un file YAML con una definizione di job Kubernetes e applicalo con i comandi kubectl per controllare il cluster. Controlla quindi lo stato del job di test Kubernetes con un comando kubectl get jobs.

  1. 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 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 gcloud del cluster e imposterà il contesto kubectl:

    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
  2. Nella directory helm-charts, crea una directory cluster-check:
    mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
  3. Nella directory $APIGEE_HELM_CHARTS_HOME/cluster-check, crea un file denominato apigee-k8s-cluster-ready-check.yaml con 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.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
    
  4. Applica apigee-k8s-cluster-ready-check.yaml con il seguente kubectl 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
  5. 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 il seguente aspetto:

    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 al seguente:

    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.

  6. Se il test non è andato a buon fine, controlla i log con i seguenti comandi.
    1. Recupera il nome del pod per il job di precontrollo del cluster:
      kubectl get pods | grep apigee-k8s-cluster-ready-check
    2. Recupera i log di Kubernetes per il pod:
      kubectl logs pod_name

      dove pod_name è il nome del pod apigee-k8s-cluster-ready-check.

  7. 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 indicare 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 per applicare la configurazione al runtime ibrida.

Risoluzione dei problemi

  1. 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 o error determining hostname, significa che il DNS del tuo cluster non è configurato correttamente per una configurazione multiregione. Puoi ignorare questo errore se non intendi configurare più regioni.
  2. Controllo della connettività del piano di controllo: se trovi log di errore simili a error creating TCP connection with host, devi risolvere la connettività dal cluster ad apigee.googleapis.com ed eseguire di nuovo il job.

Passaggio successivo

1 2 3 4 5 6 7 8 9 10 (AVANTI) Passaggio 11: installa Apigee Hybrid utilizzando i grafici Helm 12