Etapa 10: verificar a prontidão do cluster

Verificar a prontidão do cluster híbrido

Antes de aplicar a configuração e instalar os gráficos do Helm híbridos, é necessário verificar se o cluster do Kubernetes está pronto para a instalação da Apigee híbrida.

Para verificar a prontidão do cluster, crie um arquivo YAML com uma definição de job do Kubernetes e aplique-o com comandos kubectl para verificar o cluster. Em seguida, verifique o status do job de teste do Kubernetes com um comando kubectl get jobs.

  1. Verifique se kubectl está definido para o contexto correto usando o seguinte comando. O contexto atual será definido como o cluster ao qual você está implantando a Apigee híbrida.
    kubectl config current-context

    O resultado precisa incluir o nome do cluster em que você está implantando a Apigee híbrida. Por exemplo, no GKE, o nome do contexto geralmente está no formato gke_project-id_cluster-location_cluster-name, como em:

    gke_my-project_us-central1_my-cluster

    Se o nome do cluster não for correspondente, o comando a seguir receberá as credenciais da gcloud do cluster e definirá o contexto kubectl:

    Clusters regionais

    gcloud container clusters get-credentials $CLUSTER_NAME \
    --region $CLUSTER_LOCATION \
    --project $PROJECT_ID

    Clusters zonais

    gcloud container clusters get-credentials $CLUSTER_NAME \
    --zone $CLUSTER_LOCATION \
    --project $PROJECT_ID
  2. No diretório helm-charts, crie um diretório cluster-check:
    mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
  3. No diretório $APIGEE_HELM_CHARTS_HOME/cluster-check, crie um arquivo chamado apigee-k8s-cluster-ready-check.yaml com o seguinte conteúdo:
    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.2
              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. Aplique apigee-k8s-cluster-ready-check.yaml com o comando kubectl a seguir. Isso executará o teste:
    kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml

    A saída deve mostrar que a conta de serviço e o job foram criados. Exemplo:

    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. Verifique o status do job do Kubernetes com o seguinte comando:
    kubectl get jobs apigee-k8s-cluster-ready-check

    Se o cluster estiver pronto, a saída será semelhante a esta:

    NAME                            COMPLETIONS   DURATION   AGE
    apigee-k8s-cluster-ready-check  1/1           8s         1h23m

    Se o teste falhar e o cluster não estiver pronto, a saída será semelhante a esta:

    NAME                            COMPLETIONS   DURATION   AGE
    apigee-k8s-cluster-ready-check  0/1           44s         44s

    Procure o número de conclusões:

    • 1/1 Seu cluster está pronto para a instalação da Apigee híbrida.
    • 0/1 O teste falhou. O cluster não está pronto. Prossiga para as etapas a seguir a fim de solucionar os problemas do cluster.

  6. Se o teste não foi bem-sucedido, verifique os registros com os comandos a seguir.
    1. Confira o nome do pod para o job de pré-verificação do cluster:
      kubectl get pods | grep apigee-k8s-cluster-ready-check
    2. Verifique os registros do Kubernetes para o pod:
      kubectl logs pod_name

      Em que pod_name é o nome do pod apigee-k8s-cluster-ready-check.

  7. Faça uma limpeza antes de prosseguir para a próxima etapa. Exclua o job do Kubernetes com o seguinte comando:
    kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml

    A saída deve mostrar que a conta de serviço e o job foram excluídos. Exemplo:

    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
.

Você acabou de verificar se o cluster da Apigee híbrida está pronto. Em seguida, instale os gráficos para aplicar a configuração ao ambiente de execução híbrido.

Solução de problemas

  1. Verificação de DNS do Cassandra: se você encontrou registros de erros semelhantes a DNS resolution was successful but IP doesn't match POD IP, could not resolve hostname ou error determining hostname, isso significa que o DNS do cluster não está configurado corretamente para uma configuração multirregional. Ignore esse erro se você não pretende usar a configuração multirregional.
  2. Verificação de conectividade do plano de controle: se você encontrar registros de erro semelhantes a error creating TCP connection with host, será necessário resolver a conectividade do cluster com o apigee.googleapis.com e executar o job novamente.

Próxima etapa

1 2 3 4 5 6 7 8 9 10 (PRÓXIMA) Etapa 11: Instale a Apigee híbrida usando os gráficos do Helm 12