クラスタに構成を適用する
Apigee ハイブリッドをクラスタにインストールするには:
hybrid-base-directory/hybrid-files
ディレクトリに移動します。kubectl
が正しいコンテキストに設定されていることを確認します。現在のコンテキストは、デプロイ先のクラスタに設定する必要があります。kubectl config get-contexts
init
コマンドを実行します。$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
init
コマンドにより、Apigee デプロイ サービスの Apigee Deployment Controller と Apigee Admission Webhook がインストールされ、Apigee 以外のコンポーネントの Istio と Cert Manager をデプロイします。- デプロイメントのステータスを確認するには、次のコマンドを使用します。
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
および
kubectl get pods -n apigee-system
および
kubectl get pods -n istio-system
Pod の準備ができたら、次のステップに進みます。
- 「ドライラン」インストールを実行します。
--dry-run=true
フラグを指定してapply
コマンドを実行します。ドライランを行うと、クラスタが変更される前にエラーがないかどうかを確認できます。$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
- エラーがなければ、Apigee 固有のランタイム コンポーネントをクラスタに適用できます。
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- デプロイメントのステータスをチェックするには、次のコマンドを実行します。
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
Pod の準備がすべて整うまで、このステップを繰り返します。Pod の起動には数分かかることがあります。
Synchronizer アクセスを有効にする
- GCP サービス アカウントを作成し、Apigee 組織管理者のロールをアカウントに追加します。このサービス アカウントは、この後のステップで行う API 呼び出しの認証に使用します。GCP Console を使用すると、サービス アカウントを簡単に作成できます。手順については、GCP ドキュメントのサービス アカウントの作成と管理をご覧ください。
- サービス アカウント キーをシステムにダウンロードします。GCP ドキュメントのサービス アカウント キーの作成の手順に従います。
- ダウンロードしたサービス アカウント キーをサービス アカウント ディレクトリ /hybrid-base-directory
/hybrid-files/service-accounts
に移動します。 - 次の 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 組織管理者ロールでダウンロードしたサービス アカウント キーへのシステム上のパスです。
- 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"]}'
- サービス アカウントが設定されたことを確認するには、次の 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 ホスト エイリアスを組織に追加するには、次の手順を実行します。
- 前にオーバーライド ファイルの
mart.hostAlias
プロパティに設定した値を確認します。MART が機能するには、ホスト エイリアスに完全修飾ドメイン名を指定する必要があります。 - Synchronizer アクセスを有効にするセクションで、先ほどダウンロードした Apigee 組織管理者ロールを持つサービス アカウント キーを確認します。
- 次の 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 組織管理者ロールでダウンロードしたサービス アカウント キーへのシステム上のパスです。
- 次の 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" } ] } }'
オーバーライド ファイルを保存する
オーバーライド ファイルを必ず保存するようにしてください。このファイルは、今後のアップグレード、パッチ、またはクラスタ構成のその他の変更を行うために必要です。