7단계: 하이브리드 런타임 설치

동기화 담당자 액세스 사용 설정

동기화 담당자 액세스를 사용 설정하려면 다음 안내를 따르세요.

  1. Google Cloud 서비스 계정을 만들고 이 계정에 Apigee 조직 관리자 역할을 추가합니다. 이 서비스 계정은 이후 단계에서 수행할 API 호출을 인증하는 데 사용됩니다. GCP Console을 사용하면 서비스 계정을 쉽게 만들 수 있습니다. 자세한 내용은 GCP 문서의 서비스 계정 만들기 및 관리를 참조하세요.

    예를 들어 다음 gcloud 명령어는 서비스 계정을 만들고 Apigee 조직 관리자 역할을 할당합니다.

    1. 계정을 만듭니다.
      gcloud iam service-accounts create apigee-org-admin \
          --display-name="apigee-org-admin"

      여기서 apigee-org-admin은 만들려는 서비스 계정의 이름입니다. 이 가이드에서는 'apigee-org-admin'을 사용하는 것이 좋습니다.

    2. 서비스 계정에 Apigee 조직 관리자 역할을 할당합니다.
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/apigee.admin"

      각 항목의 의미는 다음과 같습니다.

      • $PROJECT_ID2단계: Google Cloud 프로젝트 만들기에서 만든 Google Cloud 프로젝트의 이름입니다.
      • apigee-org-admin은 방금 만든 서비스 계정의 이름입니다.
      • roles/apigee.adminApigee 조직 관리자 역할입니다.
  2. 서비스 계정 키를 시스템에 다운로드합니다. 다음 명령어를 사용하여 키를 service-accounts/ 디렉터리에 다운로드합니다. 자세한 내용은 GCP 문서의 서비스 계정 키 만들기의 안내를 참조하세요.
    1. 현재 위치가 /hybrid-base-directory/hybrid-files/ 디렉터리인지 확인합니다.
    2. 키를 다운로드합니다.
      gcloud iam service-accounts keys create ./service-accounts/$PROJECT_ID-apigee-org-admin.json \
        --iam-account apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com

      출력은 다음과 같이 표시됩니다.

      created key [a0b1c2d3e4f5a0b1c2d3e4f5a0b1c2d3e4f5a0b1] of type [json] as [./service-accounts/hybrid-
      example-apigee-org-admin.json] for [apigee-org-admin@my-hybrid.iam.gserviceaccount.com]
      $ 
  3. 다음 명령어를 사용하여 Apigee 조직 관리자 서비스 계정 키의 경로를 확인합니다.
    ls service-accounts/*admin*

    다음과 같은 결과가 표시됩니다.

    service-accounts/hybrid-example-apigee-org-admin.json
  4. 키 파일 이름으로 ORG_ADMIN_ACCOUNT 환경 변수를 만듭니다. 예:
    export ORG_ADMIN_ACCOUNT="hybrid-example-apigee-org-admin.json"
  5. 다음 명령어를 실행하여 토큰을 가져옵니다.
    export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
    export TOKEN=$(gcloud auth application-default print-access-token)
  6. 다음 명령어를 사용하여 apigee-synchronizer 서비스 계정의 이메일 주소를 가져옵니다.
    gcloud iam service-accounts list --filter "apigee-synchronizer"

    apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com 패턴과 일치하면 다음 단계에서 이 패턴을 사용할 수 있습니다.

  7. 다음 명령어로 setSyncAuthorization API를 호출하여 동기화 담당자에 필요한 권한을 사용 설정합니다.
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:setSyncAuthorization" \
       -d '{"identities":["'"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com"'"]}'
    

    각 항목의 의미는 다음과 같습니다.

    • $ORG_NAME: 하이브리드 조직의 이름입니다.
    • apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com: apigee-syncnronizer 서비스 계정의 이메일 주소입니다.
  8. 서비스 계정이 설정되었는지 확인하려면 다음 명령어로 API를 호출하여 서비스 계정 목록을 가져옵니다.
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME:getSyncAuthorization" \
       -d ''
    

    결과는 다음과 유사합니다.

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }

클러스터에 구성 적용

다음 단계를 따라 클러스터에 Apigee Hybrid를 설치합니다.

  1. 현재 위치가 hybrid-base-directory/hybrid-files 디렉터리인지 확인합니다.
  2. 다음 명령어를 사용하여 kubectl이 올바른 컨텍스트로 설정되었는지 확인합니다. 현재 컨텍스트를 Apigee Hybrid를 배포하는 클러스터로 설정해야 합니다.
    kubectl config get-contexts
  3. GKE의 AWS, EKS, GKE On-Prem 플랫폼의 경우 KUBECONFIG 변수가 다음 명령어를 사용하여 설정되었는지 확인합니다.
    echo $KUBECONFIG
  4. 테스트 실행를 초기화합니다. --dry-run 플래그를 사용하여 init 명령어를 실행합니다. 테스트 실행을 수행하면 클러스터를 변경하기 전에 오류를 확인할 수 있습니다.

    Hybrid 버전 1.4.4에서 --dry-run 플래그의 구문은 실행 중인 kubectl 버전에 따라 다릅니다. 다음 명령어를 사용하여 kubectl 버전을 확인합니다.

    kubectl version

    kubectl 버전 1.17 이하:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=true

    kubectl 버전 1.18 이상:

    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml --dry-run=client
  5. 오류가 없으면 다음과 같이 init 명령어를 실행합니다.
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    init 명령어는 Apigee 배포 서비스 Apigee 배포 컨트롤러와 Apigee 허용 웹훅을 설치합니다.

  6. 배포 상태를 확인하려면 다음 명령어를 사용하면 됩니다.
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
    kubectl get pods -n apigee-system
    kubectl get pods -n istio-system

    포드가 준비되면 다음 단계로 이동합니다.

  7. 테스트 실행을 설치합니다. --dry-run 플래그를 사용하여 apply 명령어를 실행합니다.

    kubectl 버전 1.17 이하:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true

    kubectl 버전 1.18 이상:

    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=client
  8. 오류가 없으면 다음 명령어를 사용하여 클러스터에 Apigee별 런타임 구성요소를 적용할 수 있습니다.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  9. 배포 상태를 확인하기 위해 다음 명령어를 실행하세요.
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    포드가 모두 준비될 때까지 이 단계를 반복합니다. 포드가 시작되는 데 몇 분 정도 걸릴 수 있습니다.