4단계: GKE의 하이브리드 설치

클러스터에 구성 적용

클러스터에 Apigee Hybrid를 설치하려면 다음 안내를 따르세요.

  1. 현재 위치가 hybrid-base-directory/hybrid-files 디렉터리인지 확인합니다.
  2. kubectl이 올바른 컨텍스트로 설정되어 있는지 확인합니다. 현재 컨텍스트는 배포 중인 클러스터로 설정되어야 합니다.
    kubectl config get-contexts
  3. init 명령어를 실행합니다.
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

    init 명령어는 Apigee 배포 서비스인 Apigee 배포 컨트롤러, Apigee 허용 웹훅을 설치하고 Apigee 이외의 구성요소인 IstioCert Manager를 배포합니다.

  4. 배포 상태를 확인하려면 다음 명령어를 사용합니다.
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

    그리고

    kubectl get pods -n apigee-system

    그리고

    kubectl get pods -n istio-system

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

  5. '테스트 실행' 설치를 수행합니다. --dry-run=true 플래그를 사용하여 apply 명령어를 실행합니다. 테스트 실행을 수행하면 클러스터를 실제로 변경하기 전에 오류를 확인할 수 있습니다.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
  6. 오류가 없으면 클러스터에 Apigee 관련 런타임 구성요소를 적용할 수 있습니다.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  7. 배포 상태를 확인하려면 다음 명령어를 사용합니다.
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

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

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

  1. GCP 서비스 계정을 만들고 이 계정에 Apigee 조직 관리자 역할을 추가합니다. 이 서비스 계정은 이후 단계에서 수행할 API 호출을 인증하는 데 사용됩니다. GCP Console을 사용하면 서비스 계정을 쉽게 만들 수 있습니다. 자세한 내용은 GCP 문서의 서비스 계정 만들기 및 관리를 참조하세요.
  2. 서비스 계정 키를 시스템에 다운로드합니다. GCP 문서의 서비스 계정 키 만들기의 안내를 따릅니다.
  3. 다운로드한 서비스 계정 키를 서비스 계정 디렉터리로 이동합니다. /hybrid-base-directory/hybrid-files/service-accounts
  4. 다음 두 명령어를 실행하여 토큰을 가져옵니다.
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    여기서 org-admin-service-account-fileApigee 조직 관리자 역할로 다운로드한 서비스 계정 키에 대한 시스템의 경로입니다.

  5. setSyncAuthorization API를 호출하여 동기화 담당자에 필요한 권한을 사용 설정합니다.
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
    

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

    • your_org_name: 하이브리드 조직의 이름입니다.
    • synchronizer-manager-service-account-email: Apigee 동기화 담당자 관리자 역할이 있는 서비스 계정의 이름입니다. 이름은 이메일 주소 형식과 같습니다. 예를 들면 apigee-synchronizer@my-project.iam.gserviceaccount.com입니다.

    예를 들면 다음과 같습니다.

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
    
  6. 서비스 계정이 설정되었는지 확인하려면 다음 API를 호출하여 서비스 계정 목록을 가져옵니다.
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''
    

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

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

org에 MART 호스트 별칭 추가

MART 엔드포인트의 호스트 별칭을 Apigee 조직에 추가해야 합니다. 재정의 파일에서 mart.hostAlias 속성 값을 설정하는 경우 이전에 이 값을 설정합니다. 관리 영역에는 MART를 통해 런타임 영역과 통신할 수 있도록 이 주소가 필요합니다.

MART 호스트 별칭을 조직에 추가하려면 다음 단계를 따르세요.

  1. mart.hostAlias 속성의 재정의 파일에서 이전에 설정한 값을 가져옵니다. MART가 작동하려면 호스트 별칭이 정규화된 도메인 이름이어야 합니다.
  2. 이전에 동기화 담당자 액세스 사용 설정 섹션에서 다운로드한 Apigee 조직 관리자 역할이 있는 서비스 계정 키를 찾습니다.
  3. 다음 두 명령어를 실행하여 토큰을 가져옵니다.
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    여기서 org-admin-service-account-fileApigee 조직 관리자 역할로 다운로드한 서비스 계정 키에 대한 시스템의 경로입니다.

  4. 다음 Management API를 호출하여 MART 엔드포인트로 조직을 업데이트합니다.
    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/your_org_name \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "your_org_name",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://HOST_ALIAS_DNS"
        } ]
      }
    }'

    예를 들면 다음과 같습니다. 호스트 별칭에 'https://' 프리픽스를 추가해야 합니다.

    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/my_organization \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "my_organization",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.server.endpoint",
          "value" : "https://foo-mart.example.com"
        } ]
      }
    }'

재정의 파일 저장

재정의 파일을 저장해야 합니다. 클러스터 구성에 향후 업그레이드, 패치 또는 기타 다른 수정을 수행하려면 이 파일이 필요합니다.