ステップ 7: ハイブリッド ランタイムをインストールする

Synchronizer アクセスを有効にする

Synchronizer アクセスを有効にするには:

  1. Google Cloud サービス アカウントを作成し、そのサービス アカウントに Apigee 組織管理者のロールを追加します。このサービス アカウントは、この後のステップで行う API 呼び出しの認証に使用します。Google Cloud コンソールを使用すると、サービス アカウントを簡単に作成できます。手順については、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"

      ここで

  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 を呼び出し、Synchronizer に必要な権限を有効にします。
    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 ハイブリッドをクラスタにインストールします。

  1. 現在のディレクトリが hybrid-base-directory/hybrid-files ディレクトリであることを確認します。
  2. 次のコマンドを使用して、kubectl が正しいコンテキストに設定されていることを確認します。現在のコンテキストは、Apigee ハイブリッドをデプロイするクラスタに設定する必要があります。
    kubectl config get-contexts
  3. GKE on AWSEKSGKE On-Prem のプラットフォームの場合、次のコマンドを使用して KUBECONFIG 変数を設定します。
    echo $KUBECONFIG
  4. ドライランの初期化を行います。--dry-run フラグを指定して init コマンドを実行します。ドライランを行うと、クラスタが変更される前にエラーがないかどうかを確認できます。

    ハイブリッド バージョン 1.4.4 では、実行している kubectl のバージョンによって --dry-run フラグの構文が異なります。次のコマンドで 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 Deployment Controller と Apigee Admission Webhook がインストールされます。

  6. デプロイのステータスを確認するには、次のコマンドを使用します。
    $APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
    kubectl get pods -n apigee-system
    kubectl get pods -n istio-system

    Pod の準備ができたら、次のステップに進みます。

  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

    Pod の準備がすべて整うまで、この手順を繰り返します。Pod の起動には数分かかることがあります。