10단계: 클러스터 준비 확인

하이브리드 클러스터 준비 확인

구성을 적용하고 하이브리드 helm 차트를 설치하기 전 Apigee Hybrid 설치를 위해 Kubernetes 클러스터가 준비되었는지 확인해야 합니다.

클러스터 준비를 확인하기 위해 Kubernetes 작업 정의를 사용하여 YAML 파일을 만들고 이 파일을 kubectl 명령어에 적용하여 클러스터를 확인합니다. 그런 다음 kubectl get jobs 명령어를 사용하여 Kubernetes 테스트 작업 상태를 확인합니다.

  1. 다음 명령어를 사용하여 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
  2. helm 차트 디렉터리에서 cluster-check 디렉터리를 만듭니다.
    mkdir $APIGEE_HELM_CHARTS_HOME/cluster-check
  3. $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
    
  4. 다음 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
  5. 다음 명령어로 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 테스트가 실패했습니다. 클러스터가 준비되지 않았습니다. 다음 단계를 진행하여 클러스터 문제를 해결합니다.

  6. 테스트가 실패하면 다음 명령어를 사용해서 로그를 확인합니다.
    1. 클러스터 사전 확인 작업의 포드 이름을 가져옵니다.
      kubectl get pods | grep apigee-k8s-cluster-ready-check
    2. 포드의 Kubernetes 로그를 가져옵니다.
      kubectl logs pod_name

      여기서 pod_name은 apigee-k8s-cluster-ready-check 포드의 이름입니다.

  7. 다음 단계를 진행하기 전에 삭제합니다. 다음 명령어를 사용하여 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 클러스터가 준비된 것을 확인했습니다. 이제 차트를 설치하여 하이브리드 런타임에 구성을 적용합니다.

문제 해결

  1. Cassandra DNS 확인: DNS resolution was successful but IP doesn't match POD IP, could not resolve hostname 또는 error determining hostname과 비슷한 오류 로그가 발견되면 멀티 리전 설정에 클러스터 DNS가 올바르게 구성되지 않은 것입니다. 멀티 리전을 설정하지 않으려면 이 오류를 무시해도 됩니다.
  2. 제어 영역 연결 확인: error creating TCP connection with host와 비슷한 오류 로그가 발견되면 클러스터의 연결을 apigee.googleapis.com으로 분석하고 작업을 다시 실행해야 합니다.

다음 단계

1 2 3 4 5 6 7 8 9 10 (다음) 11단계: 워크로드 아이덴티티 설정