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

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

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

  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-2-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. 테스트 실행를 초기화합니다. --dry-run 플래그를 사용하여 init 명령어를 실행합니다. 테스트 실행을 수행하면 클러스터를 변경하기 전에 오류를 확인할 수 있습니다.

    하이브리드 버전 1.3에서 --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
  4. 오류가 없으면 다음과 같이 init 명령어를 실행합니다.
    $APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml

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

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

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

  6. 테스트 실행을 설치합니다. --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
  7. 오류가 없으면 다음 명령어를 사용하여 클러스터에 Apigee별 런타임 구성요소를 적용할 수 있습니다.
    $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
  8. 배포 상태를 확인하기 위해 다음 명령어를 실행하세요.
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml

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

Apigee Connect 사용 설정

Apigee Connect는 런타임 영역의 Apigee 관리 영역과 MART 간의 통신을 관리합니다. 자세한 내용은 Apigee Connect 사용을 참조하세요.

Apigee Connect를 사용 설정하려면 다음 단계를 수행합니다.

  1. 다음 예시와 같이 명령줄에서 gcloud 인증 사용자 인증 정보를 가져옵니다.

    TOKEN=$(gcloud auth print-access-token)

    토큰이 입력되었는지 확인하려면 다음 예시와 같이 echo를 사용합니다.

    echo $TOKEN

    그러면 토큰이 인코딩된 문자열로 표시됩니다.

    자세한 내용은 gcloud 명령줄 도구 개요를 참조하세요.

  2. 다음 명령어를 사용하여 조직에 Apigee Connect가 사용 설정되어 있는지 확인합니다.
    curl -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"

    여기서 $ORG_NAME은 조직의 ID입니다.

    출력에 다음이 포함되면

          "name" : "features.mart.connect.enabled",
          "value" : "true"

    Apigee Connect가 사용 설정되었으며 이 섹션의 나머지 부분을 건너뛸 수 있습니다.

  3. 다음 명령어를 사용하여 Apigee Connect를 사용 설정합니다.
    curl -H "Authorization: Bearer $TOKEN" -X PUT \
      -H "Content-Type: application/json" \
      -d '{
        "name" : "'"$ORG_NAME"'",
        "properties" : {
          "property" : [ {
            "name" : "features.hybrid.enabled",
            "value" : "true"
          }, {
            "name" : "features.mart.connect.enabled",
            "value" : "true"
          } ]
        }
      }' \
      "https://apigee.googleapis.com/v1/organizations/$ORG_NAME"
    

    출력에 다음 속성이 포함되어 있으면 Apigee Connect가 성공적으로 사용 설정된 것입니다.

          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
    

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

    {
      "name": "hybrid-example-2",
      "createdAt": "1594409699772",
      "lastModifiedAt": "1594776283697",
      "environments": [
        "example-env"
      ],
      "properties": {
        "property": [
          {
            "name": "features.mart.connect.enabled",
            "value": "true"
          },
          {
            "name": "features.hybrid.enabled",
            "value": "true"
          }
        ]
      },
      "analyticsRegion": "us-central1",
      "runtimeType": "HYBRID",
      "subscriptionType": "TRIAL"
    }