하이브리드 클러스터 준비 확인
구성을 적용하고 하이브리드 런타임을 설치하기 전 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
- 하이브리드 파일 디렉터리에서
cluster-check
디렉터리를 만듭니다.mkdir $HYBRID_FILES/cluster-check
$HYBRID_FILES/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.10.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 $HYBRID_FILES/cluster-check/apigee-k8s-cluster-ready-check.yaml
- 다음 명령어를 실행하여 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 $HYBRID_FILES/cluster-check/apigee-k8s-cluster-ready-check.yaml
지금까지 Apigee Hybrid 클러스터가 준비된 것을 확인했습니다. 이제 구성을 하이브리드 런타임에 적용하고 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까지의 연결을 확인하고 작업을 다시 실행해야 합니다.