クラスタに構成を適用する
次の手順で Apigee ハイブリッドをクラスタにインストールします。
- 現在のディレクトリが
hybrid-base-directory/hybrid-files
ディレクトリであることを確認します。cd $HYBRID_FILES
- 次のコマンドを使用して、
kubectl
が正しいコンテキストに設定されていることを確認します。現在のコンテキストは、Apigee ハイブリッドをデプロイするクラスタに設定する必要があります。kubectl config current-context
結果に、Apigee ハイブリッドをデプロイするクラスタの名前が含まれている必要があります。たとえば、GKE では、コンテキスト名は通常、
gke_project-id_cluster-location_cluster-name
の形式になります。gke_my-project_us-central1_my-cluster
コンテキスト内のクラスタ名が一致しない場合は、次のコマンドを使ってクラスタの
gcloud
認証情報を取得し、kubectl
コンテキストを設定します。リージョン クラスタ
gcloud container clusters get-credentials $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID
ゾーンクラスタ
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID
- プラットフォームが Anthos on bare metal、AWS on GKE、EKS、GKE On-Prem の場合のみ、次のコマンドを使用して、
KUBECONFIG
変数が設定されていることを検証します。echo ${KUBECONFIG}
- ドライランの初期化を行います。ドライランを行うと、クラスタが変更される前にエラーがないかどうかを確認できます。次のように
--dry-run
フラグを指定してinit
コマンドを実行します。${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 apigee
Pod の準備ができたら、次のステップに進みます。
- ドライランのインストールを行います。
--dry-run
フラグを指定してapply
コマンドを実行します。${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 の起動には数分かかることがあります。
GKE での Workload Identity の使用
GKE で Workload Identity を使用している場合は、次の手順に沿って、apigeectl
によって作成された Kubernetes サービス アカウントを、ステップ 4: サービス アカウントと認証情報を作成するで作成した Google サービス アカウントに関連付けます。
この手順では、次の環境変数を使用します。これらの変数をコマンドシェルに設定するか、コードサンプル内の値を実際の値に置き換えます。
APIGEECTL_HOME
:apigeectl
をインストールしたディレクトリ。CLUSTER_LOCATION
: クラスタのリージョンまたはゾーン(例:us-west1
)。CLUSTER_LOCATION
: クラスタの名前。ENV_NAME
: Apigee 環境の名前。NAMESPACE
: Apigee Namespace。デフォルトはapigee
です。HYBRID_FILES
: ハイブリッド ファイルのディレクトリ(例:hybrid-base-directory/hybrid-files
)。ORG_NAME
: Apigee 組織の名前。PROJECT_ID
: Google Cloud プロジェクトの ID。
環境変数を確認します。
echo $APIGEECTL_HOMEecho $CLUSTER_LOCATION
echo $ENV_NAME
echo $HYBRID_FILES
echo $NAMESPACE
echo $ORG_NAME
echo $PROJECT_ID
必要な変数を初期化します。
export APIGEECTL_HOME=hybrid-base-directory/apigeectlexport CLUSTER_LOCATION=my-cluster-location
export ENV_NAME=my-environment-name
export HYBRID_FILES=hybrid-base-directory/hybrid-files
export NAMESPACE=apigee
export ORG_NAME=$PROJECT_ID
export PROJECT_ID=my-project-id
- 省略可: サービス アカウント キー ファイルを削除します。
GKE で Apigee ハイブリッドを実行するときには、通常、各サービス アカウントの秘密鍵(
.json
ファイル)を作成してダウンロードします。Workload Identity を使用する場合、サービス アカウントの秘密鍵をダウンロードして GKE クラスタに追加する必要はありません。鍵ファイルは次のコマンドで削除できます。
rm $HYBRID_FILES/service-accounts/*.json
- 次のコマンドを使用して、Google Cloud プロジェクト ID の現在の
gcloud
構成を確認します。gcloud config get project
- Kubernetes サービス アカウント
apigee-cassandra-restore
を作成します。apigeectl apply
を実行して構成を適用したときに、Workload Identity に必要なほとんどの Kubernetes サービス アカウントが作成されています。Kubernetes サービス アカウント
apigee-cassandra-restore
を作成するには、--restore
フラグを指定してapigeectl apply
を実行します。$APIGEECTL_HOME/apigeectl apply -f $HYBRID_FILES/overrides/overrides.yaml --restore
- GKE クラスタで Workload Identity が有効になっていることを確認します。ステップ 1: クラスタを作成するでクラスタを作成したとき、ステップ 6 で Workload Identity を有効にしました。次のコマンドを実行して、Workload Identity が有効になっているかどうかを確認できます。
リージョン クラスタ
gcloud container clusters describe $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten 'workloadIdentityConfig'
ゾーンクラスタ
gcloud container clusters describe $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten 'workloadIdentityConfig'
クラスタで Workload Identity が有効になっている場合、出力は次のようになります。
--- workloadPool: PROJECT_ID.svc.id.goog
結果に
null
が表示された場合は、次のコマンドを実行してクラスタの Workload Identity を有効にします。リージョン クラスタ
gcloud container clusters update $CLUSTER_NAME \ --workload-pool=$PROJECT_ID.svc.id.goog \ --project $PROJECT_ID \ --region $CLUSTER_LOCATION
ゾーンクラスタ
gcloud container clusters update $CLUSTER_NAME \ --workload-pool=$PROJECT_ID.svc.id.goog \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID
- 次のコマンドを使用して、ノードプールで Workload Identity が有効になっていることを確認します。
リージョン クラスタ
gcloud container node-pools describe apigee-data \ --cluster $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
gcloud container node-pools describe apigee-runtime \ --cluster $CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
ゾーンクラスタ
gcloud container node-pools describe apigee-data \ --cluster $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
gcloud container node-pools describe apigee-runtime \ --cluster $CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --flatten "config:"
出力は次のようになります。
--- diskSizeGb: 100 diskType: pd-standard ... workloadMetadataConfig: mode: GKE_METADATA
出力に
workloadMetadataConfig:
の行が含まれていない場合は、次のコマンドを使用して、各ノードプールに対して Workload Identity を有効にします。この処理に 30 分ほどかかることがあります。リージョン クラスタ
gcloud container node-pools update NODE_POOL_NAME \ --cluster=$CLUSTER_NAME \ --region $CLUSTER_LOCATION \ --project $PROJECT_ID \ --workload-metadata=GKE_METADATA
ゾーンクラスタ
gcloud container node-pools update NODE_POOL_NAME \ --cluster=$CLUSTER_NAME \ --zone $CLUSTER_LOCATION \ --project $PROJECT_ID \ --workload-metadata=GKE_METADATA
ここで、NODE_POOL_NAME は各ノードプールの名前です。ほとんどの Apigee ハイブリッド インストールでは、2 つのデフォルト ノードプールは
apigee-data
とapigee-runtime
という名前になっています。 - 次のコマンドを使用して、プロジェクトの Google サービス アカウントの名前を確認します。
gcloud iam service-accounts list --project $PROJECT_ID
出力は次のようになります。
非本番環境
非本番環境の場合:
DISPLAY NAME EMAIL DISABLED apigee-non-prod apigee-non-prod@my_project_id.iam.gserviceaccount.com False
本番環境
非本番環境の場合:
DISPLAY NAME EMAIL DISABLED apigee-cassandra apigee-cassandra@my_project_id.iam.gserviceaccount.com False apigee-logger apigee-logger@my_project_id.iam.gserviceaccount.com False apigee-mart apigee-mart@my_project_id.iam.gserviceaccount.com False apigee-metrics apigee-metrics@my_project_id.iam.gserviceaccount.com False apigee-runtime apigee-runtime@my_project_id.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my_project_id.iam.gserviceaccount.com False apigee-udca apigee-udca@my_project_id.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my_project_id.iam.gserviceaccount.com False
- 次のコマンドを使用して、サービス アカウントを確認します。
kubectl get sa -n $NAMESPACE
出力は次のようになります。太字の Kubernetes サービス アカウントには、Google サービス アカウントでアノテーションを付ける必要があります。
NAME SECRETS AGE apigee-cassandra-backup 1 11m apigee-cassandra-restore 1 11m apigee-cassandra-schema-setup-my-project-id-123abcd-sa 1 11m apigee-cassandra-schema-val-my-project-id-123abcd 1 11m apigee-cassandra-user-setup-my-project-id-123abcd-sa 1 11m apigee-connect-agent-my-project-id-123abcd-sa 1 11m apigee-datastore-default-sa 1 11m apigee-ingressgateway 1 11m apigee-ingressgateway-my-project-id-123abcd 1 11m apigee-ingressgateway-manager 1 11m apigee-init 1 11m apigee-mart-my-project-id-123abcd-sa 1 11m apigee-metrics-sa 1 11m apigee-mint-task-scheduler-my-project-id-123abcd-sa 1 11m apigee-redis-default-sa 1 11m apigee-redis-envoy-default-sa 1 11m apigee-runtime-my-project-id-env-name-234bcde-sa 1 11m apigee-synchronizer-my-project-id-env-name-234bcde-sa 1 11m apigee-udca-my-project-id-123abcd-sa 1 11m apigee-udca-my-project-id-env-name-234bcde-sa 1 11m apigee-watcher-my-project-id-123abcd-sa 1 11m default 1 11m
-
Apigee コンポーネントごとに、そのコンポーネントの Google サービス アカウントで、対応する Kubernetes サービス アカウントにアノテーションを付けます。
次の手順では、2 つの環境変数を使用します。各コマンドセットを実行する前に、これらの変数の値をリセットします。
- GSA_NAME: Google サービス アカウントの名前。ステップ 4: サービス アカウントを作成するで
create-service-account
ツールを使って作成したサービス アカウントです。 - KSA_NAME: Kubernetes サービス アカウントの名前。
kubectl get sa -n $NAMESPACE
コマンドを使って確認したアカウントです(例:apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa
)。
- GSA_NAME: Google サービス アカウントの名前。ステップ 4: サービス アカウントを作成するで
- Cassandra
Cassandra コンポーネントには、次の 6 つの Kubernetes サービス アカウントが関連付けられています。
apigee-cassandra-backup
apigee-cassandra-restore
apigee-cassandra-schema-setup
apigee-cassandra-schema-val
(val
は検証(validation)の意味)apigee-cassandra-user-setup
apigee-datastore-default
非本番環境
次の手順では、2 つの環境変数を使用します。各コマンドセットを実行する前に、これらの変数の値をリセットします。
- GSA_NAME: Google サービス アカウントの名前。これらは、ステップ 4: サービス アカウントを作成するで
create-service-account
ツールによって作成したサービス アカウントです。 - KSA_NAME: Kubernetes サービス アカウントの名前。これは、
kubectl get sa -n $NAMESPACE
コマンドで一覧表示したアカウントです。
apigee-cassandra-backup
Kubernetes サービス アカウント- 環境変数
KSA_NAME
とGSA_NAME
を定義します。GSA_NAME="apigee-non-prod"
KSA_NAME="apigee-cassandra-backup"
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
出力には、次のようにアノテーションを説明する行が表示されます。
Annotations: iam.gke.io/gcp-service-account: apigee-non-prod@my-project-id.iam.gserviceaccount.com
apigee-cassandra-restore
Kubernetes サービス アカウントKSA_NAME
環境変数を再定義します。KSA_NAME="apigee-cassandra-restore"
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-schema-setup
Kubernetes サービス アカウント- 環境変数
KSA_NAME
を再定義します。 例:KSA_NAME="apigee-cassandra-schema-setup-service-account-name-sa"
apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-schema-val
Kubernetes サービス アカウント- 環境変数
KSA_NAME
を再定義します。 例:KSA_NAME="apigee-cassandra-schema-val-service-account-name"
apigee-cassandra-schema-val-hybrid-example-project-123abcd
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-user-setup
Kubernetes サービス アカウント- 環境変数
KSA_NAME
を再定義します。 例:KSA_NAME="apigee-cassandra-user-setup-service-account-name-sa"
apigee-cassandra-user-setup-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-datastore-default-sa
Kubernetes サービス アカウントKSA_NAME
環境変数を再定義します。KSA_NAME="apigee-datastore-default-sa"
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
本番環境
apigee-cassandra-backup
Kubernetes サービス アカウント- 環境変数
KSA_NAME
とGSA_NAME
を定義します。GSA_NAME="apigee-cassandra"
KSA_NAME="apigee-cassandra-backup"
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
出力には、次のようにアノテーションを説明する行が表示されます。
Annotations: iam.gke.io/gcp-service-account: apigee-cassandra@my-project-id.iam.gserviceaccount.com
apigee-cassandra-restore
Kubernetes サービス アカウントKSA_NAME
環境変数を再定義します。KSA_NAME="apigee-cassandra-restore"
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
apigee-cassandra-schema-setup
Kubernetes サービス アカウント- 環境変数
KSA_NAME
を再定義します。 例:KSA_NAME="apigee-cassandra-schema-setup-service-account-name-sa"
apigee-cassandra-schema-setup-hybrid-example-project-123abcd-sa
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
apigee-cassandra-schema-val
Kubernetes サービス アカウント- 環境変数
KSA_NAME
を再定義します。 例:KSA_NAME="apigee-cassandra-schema-val-service-account-name"
apigee-cassandra-schema-val-hybrid-example-project-123abcd
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-cassandra-user-setup
Kubernetes サービス アカウント- 環境変数
KSA_NAME
を再定義します。 例:KSA_NAME="apigee-cassandra-user-setup-service-account-name-sa"
apigee-cassandra-user-setup-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
apigee-datastore-default-sa
Kubernetes サービス アカウントKSA_NAME
環境変数を再定義します。KSA_NAME="apigee-datastore-default-sa"
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- Apigee Connect
非本番環境
- 環境変数
KSA_NAME
を定義します。 例:KSA_NAME="apigee-connect-agent-service-account-name-sa"
apigee-connect-agent-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
本番環境
- 環境変数
KSA_NAME
とGSA_NAME
を定義します。 例:GSA_NAME="apigee-mart"
KSA_NAME="apigee-connect-agent-service-account-name-sa"
apigee-connect-agent-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- 環境変数
- MART
非本番環境
- 環境変数
KSA_NAME
を定義します。 例:KSA_NAME="apigee-mart-service-account-name-sa"
apigee-mart-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
本番環境
- 環境変数
KSA_NAME
とGSA_NAME
を定義します。 例:GSA_NAME="apigee-mart"
KSA_NAME="apigee-mart-service-account-name-sa"
apigee-mart-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- 環境変数
- Apigee 指標
非本番環境
- 環境変数
KSA_NAME
を定義します。KSA_NAME="apigee-metrics-sa"
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
本番環境
- 環境変数
KSA_NAME
とGSA_NAME
を定義します。GSA_NAME="apigee-metrics"
KSA_NAME="apigee-metrics-sa"
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- 環境変数
- UDCA(組織レベル)
UDCA は、組織レベルと環境レベルの両方のスコープで実装されます。したがって、UDCA には、スコープごとに 1 つずつ、合わせて 2 つの Kubernetes サービス アカウントがあります。この 2 つのサービス アカウントは名前で区別できます。環境スコープのサービス アカウントの名前には環境名が含まれます。次に例を示します。
- 組織レベル:
apigee-udca-my-project-id-123abcd-sa
。ここで、my-project-id
はプロジェクト ID です。 - 環境レベル:
apigee-udca-my-project-id-my-env-234bcde-sa
。ここで、my-env
は環境の名前です。
非本番環境
- 環境変数
KSA_NAME
を定義します。 例:KSA_NAME="apigee-udca-service-account-name-sa"
apigee-udca-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
本番環境
- 環境変数
KSA_NAME
とGSA_NAME
を定義します。 例:GSA_NAME="apigee-udca"
KSA_NAME="apigee-udca-service-account-name-sa"
apigee-udca-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- 組織レベル:
- Apigee Watcher
非本番環境
- 環境変数
KSA_NAME
を定義します。 例:KSA_NAME="apigee-watcher-service-account-name-sa"
apigee-watcher-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
本番環境
- 環境変数
KSA_NAME
とGSA_NAME
を定義します。 例:GSA_NAME="apigee-watcher"
KSA_NAME="apigee-watcher-service-account-name-sa"
apigee-watcher-hybrid-example-project-123abcd-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- 環境変数
- ランタイム
非本番環境
- 環境変数
KSA_NAME
を定義します。 例:KSA_NAME="apigee-runtime-env-level-service-account-name-sa"
apigee-runtime-hybrid-example-project-example-env-234bcde-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
本番環境
- 環境変数
KSA_NAME
とGSA_NAME
を定義します。 例:GSA_NAME="apigee-runtime"
KSA_NAME="apigee-runtime-env-level-service-account-name-sa"
apigee-runtime-hybrid-example-project-example-env-234bcde-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- 環境変数
- Synchronizer
非本番環境
- 環境変数
KSA_NAME
を定義します。 例:KSA_NAME="apigee-synchronizer-env-level-service-account-name-sa"
apigee-synchronizer-hybrid-example-project-example-env-234bcde-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
本番環境
- 環境変数
KSA_NAME
とGSA_NAME
を定義します。 例:GSA_NAME="apigee-synchronizer"
KSA_NAME="apigee-synchronizer-env-level-service-account-name-sa"
apigee-synchronizer-hybrid-example-project-example-env-234bcde-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- 環境変数
- UDCA(環境レベル)
非本番環境
- 環境変数
KSA_NAME
を定義します。 例:KSA_NAME="apigee-udca-env-level-service-account-name-sa"
apigee-udca-hybrid-example-project-example-env-234bcde-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
本番環境
- 環境変数
KSA_NAME
とGSA_NAME
を定義します。 例:GSA_NAME="apigee-udca"
KSA_NAME="apigee-udca-env-level-service-account-name-sa"
apigee-udca-hybrid-example-project-example-env-234bcde-sa
- IAM ロールをバインドします。
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:$PROJECT_ID.svc.id.goog[$NAMESPACE/$KSA_NAME]" \ $GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com \ --project $PROJECT_ID
- サービス アカウントにアノテーションを付けます。
kubectl annotate serviceaccount \ --namespace $NAMESPACE $KSA_NAME iam.gke.io/gcp-service-account=$GSA_NAME@$PROJECT_ID.iam.gserviceaccount.com
- アノテーションを確認します。
kubectl describe serviceaccount \ --namespace $NAMESPACE $KSA_NAME
- 環境変数
- (省略可)Kubernetes サービス アカウントのステータスは、Google Cloud コンソールの [Kubernetes: ワークロードの概要] ページで確認できます。
apigeectl check-ready
を使用してデプロイのステータスを再度確認するには:${APIGEECTL_HOME}/apigeectl check-ready -f ${HYBRID_FILES}/overrides/overrides.yaml
必要に応じて、現在の gcloud
構成を設定します。
gcloud config set project $PROJECT_ID