Verifique a prontidão do cluster híbrido
Antes de aplicar a configuração e instalar os gráficos Helm híbridos, deve verificar se o cluster do Kubernetes está pronto para a instalação híbrida do Apigee.
Para verificar a prontidão do cluster, vai criar um ficheiro YAML com uma definição de tarefa do Kubernetes e aplicar esse ficheiro com comandos kubectl
para verificar o cluster.
Em seguida, verifique o estado da tarefa de teste do Kubernetes com um comando kubectl get jobs
.
- Verifique se
kubectl
está definido para o contexto correto através do seguinte comando. O contexto atual deve ser definido para o cluster no qual está a implementar o Apigee Hybrid.kubectl config current-context
O resultado deve incluir o nome do cluster no qual está a implementar o Apigee hybrid. Por exemplo, no GKE, o nome do contexto está normalmente no formato
gke_project-id_cluster-location_cluster-name
, como em:gke_my-project_us-central1_my-cluster
Se o nome do cluster no contexto não corresponder, o comando seguinte obtém as credenciais
gcloud
do cluster e define o contextokubectl
: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
- No diretório helm-charts, crie um diretório
cluster-check
:mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
- No diretório
$APIGEE_HELM_CHARTS_HOME/cluster-check
, crie um ficheiro denominadoapigee-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.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
- Aplique o
apigee-k8s-cluster-ready-check.yaml
com o seguinte comandokubectl
. Esta ação executa o teste:kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
O resultado deve mostrar que a conta de serviço e a tarefa foram criadas. Por 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 - Verifique o estado da tarefa do Kubernetes com o seguinte comando:
kubectl get jobs apigee-k8s-cluster-ready-check
Se o cluster estiver pronto, o resultado deve ter um aspeto semelhante ao seguinte:
NAME COMPLETIONS DURATION AGE apigee-k8s-cluster-ready-check 1/1 8s 1h23m
Se o teste falhar e o cluster não estiver pronto, o resultado é semelhante ao seguinte:
NAME COMPLETIONS DURATION AGE apigee-k8s-cluster-ready-check 0/1 44s 44s
Procure o número de conclusões:
- 1/1 Êxito. O cluster está pronto para a instalação do Apigee Hybrid.
- 0/1 O teste falhou. O cluster não está pronto. Avance para os passos seguintes para resolver problemas do cluster.
- Se o teste não for bem-sucedido, verifique os registos com os seguintes comandos.
- Obtenha o nome do pod para a tarefa de verificação prévia do cluster:
kubectl get pods | grep apigee-k8s-cluster-ready-check
- Obtenha os registos do Kubernetes para o pod:
kubectl logs pod_name
Em que pod_name é o nome do pod apigee-k8s-cluster-ready-check.
- Obtenha o nome do pod para a tarefa de verificação prévia do cluster:
- Limpe antes de avançar para o passo seguinte. Elimine a tarefa do Kubernetes com o seguinte comando:
kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
O resultado deve mostrar que a conta de serviço e a tarefa foram eliminadas. Por 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
Agora, certificou-se de que o cluster híbrido do Apigee está pronto. Em seguida, vamos instalar os gráficos para aplicar a sua configuração ao tempo de execução híbrido.
Resolução de problemas
- Verificação de DNS do Cassandra: se encontrar registos de erros semelhantes a
DNS resolution was successful but IP doesn't match POD IP
,could not resolve hostname
ouerror determining hostname
, significa que o DNS do cluster não está configurado corretamente para uma configuração de várias regiões. Pode ignorar este erro se não pretender configurar várias regiões. - Verificação da conetividade do plano de controlo: se encontrar registos de erros semelhantes a
error creating TCP connection with host
, tem de resolver a conetividade do cluster para apigee.googleapis.com e executar novamente a tarefa.