하이브리드 클러스터 준비 확인
구성을 적용하고 하이브리드 helm 차트를 설치하기 전 Apigee Hybrid 설치를 위해 Kubernetes 클러스터가 준비되었는지 확인해야 합니다.
클러스터 준비를 확인하기 위해 Kubernetes 작업 정의를 사용하여 YAML 파일을 만들고 이 파일을 kubectl
명령어에 적용하여 클러스터를 확인합니다.
그런 다음 kubectl get jobs
명령어를 사용하여 Kubernetes 테스트 작업 상태를 확인합니다.
- 다음 명령어를 사용하여
kubectl
이 올바른 컨텍스트로 설정되었는지 확인합니다. 현재 컨텍스트를 Apigee Hybrid를 배포하는 클러스터로 설정해야 합니다.kubectl config current-context
결과에는 Apigee Hybrid를 배포하는 클러스터 이름이 포함됩니다. 예를 들어 GKE에서 컨텍스트 이름은 일반적으로 다음과 같이
gke_project-id_cluster-location_cluster-name
형식입니다.gke_my-project_us-central1_my-cluster
이름이 컨텍스트의 클러스터 이름과 일치하지 않으면 다음 명령어는 클러스터의
gcloud
사용자 인증 정보를 가져오고kubectl
컨텍스트를 설정합니다.리전 클러스터
gcloud container clusters get-credentials $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID
영역 클러스터
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID
- helm 차트 디렉터리에서
cluster-check
디렉터리를 만듭니다.mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
$APIGEE_HELM_CHARTS_HOME/cluster-check
디렉터리에서 다음 내용이 포함된apigee-k8s-cluster-ready-check.yaml
파일을 만듭니다.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.14.0 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
- 다음
kubectl
명령어를 사용하여apigee-k8s-cluster-ready-check.yaml
을 적용합니다. 그러면 테스트가 실행됩니다.kubectl apply -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
출력에 서비스 계정 및 작업이 생성된 것으로 표시됩니다. 예를 들면 다음과 같습니다.
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 - 다음 명령어로 Kubernetes 작업 상태를 확인합니다.
kubectl get jobs apigee-k8s-cluster-ready-check
클러스터가 준비되면 출력이 다음과 같이 표시됩니다.
NAME COMPLETIONS DURATION AGE apigee-k8s-cluster-ready-check 1/1 8s 1h23m
테스트가 실패하고 클러스터가 준비되지 않았으면 출력이 다음과 같이 표시됩니다.
NAME COMPLETIONS DURATION AGE apigee-k8s-cluster-ready-check 0/1 44s 44s
완료 횟수를 확인합니다.
- 1/1 성공, Apigee Hybrid 설치를 위해 클러스터가 준비되었습니다.
- 0/1 테스트가 실패했습니다. 클러스터가 준비되지 않았습니다. 다음 단계를 진행하여 클러스터 문제를 해결합니다.
- 테스트가 실패하면 다음 명령어를 사용해서 로그를 확인합니다.
- 클러스터 사전 확인 작업의 포드 이름을 가져옵니다.
kubectl get pods | grep apigee-k8s-cluster-ready-check
- 포드의 Kubernetes 로그를 가져옵니다.
kubectl logs pod_name
여기서 pod_name은 apigee-k8s-cluster-ready-check 포드의 이름입니다.
- 클러스터 사전 확인 작업의 포드 이름을 가져옵니다.
- 다음 단계를 진행하기 전에 삭제합니다. 다음 명령어를 사용하여 Kubernetes 작업을 삭제합니다.
kubectl delete -f $APIGEE_HELM_CHARTS_HOME/cluster-check/apigee-k8s-cluster-ready-check.yaml
출력에 서비스 계정 및 작업이 삭제된 것으로 표시됩니다. 예를 들면 다음과 같습니다.
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
지금까지 Apigee Hybrid 클러스터가 준비된 것을 확인했습니다. 이제 차트를 설치하여 하이브리드 런타임에 구성을 적용합니다.
문제 해결
- Cassandra DNS 확인:
DNS resolution was successful but IP doesn't match POD IP
,could not resolve hostname
또는error determining hostname
과 비슷한 오류 로그가 발견되면 멀티 리전 설정에 클러스터 DNS가 올바르게 구성되지 않은 것입니다. 멀티 리전을 설정하지 않으려면 이 오류를 무시해도 됩니다. - 제어 영역 연결 확인:
error creating TCP connection with host
와 비슷한 오류 로그가 발견되면 클러스터의 연결을 apigee.googleapis.com으로 분석하고 작업을 다시 실행해야 합니다.