構成をクラスタに適用する
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
ポッドの準備ができたら、次のステップに進みます。
- 「ドライラン」インストールを実行します。
--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
ポッドの準備がすべて整うまで、このステップを繰り返します。ポッドの起動には数分かかることがあります。
Cassandra の静的ホスト名を /etc/hosts に追加する(Anthos 1.2.x のみ)
このステップでは、Cassandra に割り当てられたワーカーノードの IP とホスト名を取得し、/etc/hosts
ファイルに追加します。ホスト ネットワークを使用している場合、ポッドでノードのホスト名と IP を使用します。ノードホスト名が DNS にないため、Cassandra ワーカーノードごとに /etc/hosts
に静的ホスト名エントリを追加する必要があります。
- このコマンドを実行して、Cassandra ワーカーノードを取得します。パラメータ
apigee-data
は、Cassandra が割り当てられているデフォルトのノードラベルです。別のノードラベルを使用した場合は、使用したものと置き換えます。ワーカーノードにラベルを付ける方法をご覧ください。kubectl get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide
出力例:
kubectl get nodes -o wide my-cluster1-844788cc8c-2gx7d NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME my-cluster1-844788cc8c-2gx7d Ready none 19d v1.14.7-gke.24 21.0.129.248 21.0.129.248 Ubuntu 18.04.3 LTS 4.15.0-62-generic docker://17.3.2
- 各 Cassandra ワーカーノードに対する前のコマンドで返されたノード名と外部 IP を
/etc/hosts
ファイルに追加します。cat /etc/hosts 127.0.0.1 localhost 21.0.129.248 my-cluster1-844788cc8c-2gx7d
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 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" } ] } }'
オーバーライド ファイルを保存する
オーバーライド ファイルを必ず保存するようにしてください。このファイルは、今後のアップグレード、パッチ、またはクラスタ構成のその他の変更を行うために必要です。