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