ステップ 4: GKE にハイブリッドをインストールする

クラスタに構成を適用する

Apigee ハイブリッドをクラスタにインストールするには:

  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 Deployment Controller、Apigee Admission Webhook がインストールされ、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

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

  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 の起動には数分かかることがあります。

Synchronizer アクセスを有効にする

  1. GCP サービス アカウントを作成して、Apigee 組織管理者ロールを付与します。このサービス アカウントは、この後のステップで行う API 呼び出しの認証に使用します。GCP コンソールを使用すると、サービス アカウントを簡単に作成できます。手順については、GCP ドキュメントのサービス アカウントを作成して管理するをご覧ください。
  2. サービス アカウント キーをシステムにダウンロードします。GCP ドキュメントのサービス アカウント キーの作成の説明に従います。
  3. ダウンロードしたサービス アカウント キーをサービス アカウント ディレクトリ /hybrid-base-directory/hybrid-files/service-accounts に移動します。
  4. 次の 2 つのコマンドを実行して、トークンを取得します。
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    ここで org-admin-service-account-file は、Apigee 組織管理者のロールでダウンロードしたサービス アカウント キーのシステム上のパスです。

  5. setSyncAuthorization API を呼び出して、Synchronizer に必要な権限を有効にします。
    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 Synchronizer 管理者ロールを持つサービス アカウントの名前。この名前はメールアドレスのような形式になっています。たとえば、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="
    }
        

MART ホスト エイリアスを組織に追加する

MART エンドポイントのホスト エイリアスを Apigee 組織に追加する必要があります。この値は、前にオーバーライド ファイルの mart.hostAlias プロパティの値として設定した値です。MART を介してランタイム プレーンと通信するために、管理プレーンはこのアドレスを必要とします。

MART ホスト エイリアスを組織に追加するには、次の手順を実行します。

  1. 前にオーバーライド ファイルの mart.hostAlias プロパティに設定した値を取得します。MART が機能するには、ホスト エイリアスに完全修飾ドメイン名を指定する必要があります。
  2. Synchronizer アクセスを有効にするセクションでダウンロードした Apigee 組織管理者ロールを持つサービス アカウント キーを確認します。
  3. 次の 2 つのコマンドを実行して、トークンを取得します。
    export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    export TOKEN=$(gcloud auth application-default print-access-token)

    ここで org-admin-service-account-file は、Apigee 組織管理者のロールでダウンロードしたサービス アカウント キーのシステム上のパスです。

  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"
        } ]
      }
    }'

オーバーライド ファイルを保存する

オーバーライド ファイルを必ず保存してください。このファイルは、今後のアップグレード、パッチ適用、またはクラスタ構成に対するその他の変更を行うために必要です。