クラスタに構成を適用する
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 の起動には数分かかることがあります。
Cassandra の静的ホスト名を /etc/hosts に追加する(Anthos 1.2.x のみ)
この手順では、Cassandra に割り当てられたワーカーノードの IP とホスト名を取得し、/etc/hosts
ファイルに追加します。ホスト ネットワークを使用している場合は、Pod でノードのホスト名と 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 コンソールを使用すると、サービス アカウントを簡単に作成できます。手順については、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" } ] } }'
オーバーライド ファイルを保存する
オーバーライド ファイルを必ず保存してください。このファイルは、今後のアップグレード、パッチ適用、またはクラスタ構成に対するその他の変更を行うために必要です。