Synchronizer アクセスを有効にする
Synchronizer アクセスを有効にするには:
- Google Cloud サービス アカウントを作成し、そのサービス アカウントに Apigee 組織管理者のロールを追加します。このサービス アカウントは、この後のステップで行う API 呼び出しの認証に使用します。Google Cloud コンソールを使用すると、サービス アカウントを簡単に作成できます。手順については、GCP ドキュメントのサービス アカウントの作成と管理をご覧ください。
たとえば、次の
gcloud
コマンドは、サービス アカウントを作成し、そのサービス アカウントに Apigee 組織管理者を割り当てます。- アカウントを作成します。
gcloud iam service-accounts create apigee-org-admin \ --display-name="apigee-org-admin"
ここで、apigee-org-admin は、作成するサービス アカウントの名前です。このチュートリアルでは、「
apigee-org-admin
」をおすすめします。 - Apigee 組織管理者のロールをサービス アカウントに割り当てます。
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-org-admin@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.admin"
ここで
- $PROJECT_ID は、ステップ 2: Google Cloud プロジェクトを作成するで作成した Google Cloud プロジェクトの名前です。
- apigee-org-admin は、作成したサービス アカウントの名前です。
- roles/apigee.admin は、Apigee 組織管理者のロールです。
- アカウントを作成します。
- サービス アカウント キーをシステムにダウンロードします。次のコマンドを使用して、鍵を
service-accounts/
ディレクトリにダウンロードします。詳細については、GCP ドキュメントのサービス アカウント キーの作成の手順をご覧ください。/hybrid-base-directory/hybrid-files/
ディレクトリ内にいることを確認します。- キーをダウンロードします。
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] $
- 次のコマンドを使用して、Apigee 組織管理者のサービス アカウント キーのパスを検証します。
ls service-accounts/*admin*
結果は次のようになります。
service-accounts/hybrid-example-apigee-org-admin.json
- 鍵ファイルの名前を使用して ORG_ADMIN_ACCOUNT 環境変数を作成します。次に例を示します。
export ORG_ADMIN_ACCOUNT="hybrid-example-apigee-org-admin.json"
- トークンを取得するには、次のコマンドを実行します。
export GOOGLE_APPLICATION_CREDENTIALS=./service-accounts/$ORG_ADMIN_ACCOUNT
export TOKEN=$(gcloud auth application-default print-access-token)
- 次のコマンドで
apigee-synchronizer
サービス アカウントのメールアドレスを取得します。gcloud iam service-accounts list --filter "apigee-synchronizer"
パターン
apigee-synchronizer$ORG_NAME.iam.gserviceaccount.com
と一致する場合、そのパターンは次のステップで使用できます。 - 次のコマンドを使用して 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 サービス アカウントのメールアドレス。
- サービス アカウントが設定されたことを確認するには、次のコマンドを使用して 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-base-directory/hybrid-files
ディレクトリであることを確認します。 - 次のコマンドを使用して、
kubectl
が正しいコンテキストに設定されていることを確認します。現在のコンテキストは、Apigee ハイブリッドをデプロイするクラスタに設定する必要があります。kubectl config get-contexts
- GKE on AWS、EKS、GKE On-Prem のプラットフォームの場合、次のコマンドを使用して
KUBECONFIG
変数を設定します。echo $KUBECONFIG
- ドライランの初期化を行います。
--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
- エラーがなければ、次のように
init
コマンドを実行します。$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
init
コマンドにより、Apigee デプロイメント サービスの Apigee Deployment Controller と Apigee Admission Webhook がインストールされます。 - デプロイのステータスを確認するには、次のコマンドを使用します。
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
kubectl get pods -n apigee-system
kubectl get pods -n istio-system
Pod の準備ができたら、次のステップに進みます。
- ドライランのインストールを行います。
--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
-
エラーがなければ、次のコマンドを使用して Apigee 固有のランタイム コンポーネントをクラスタに適用できます。
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- デプロイのステータスを確認するには、次のコマンドを実行します。
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
Pod の準備がすべて整うまで、この手順を繰り返します。Pod の起動には数分かかることがあります。