Apigee ハイブリッド ランタイム コンポーネントをインストールする
このステップでは Helm を使用して、Apigee ハイブリッドの次のコンポーネントをインストールします。
- Apigee オペレーター
- Apigee データストア
- Apigee テレメトリー
- Apigee Redis
- Apigee Ingress Manager
- Apigee 組織
- Apigee 環境
各環境のチャートを 1 つずつインストールします。コンポーネントをインストールする順序は重要です。
インストール前の注意事項
- v3.14.2 以降をまだインストールしていない場合は、Helm のインストールの手順に沿って操作します。
-
Apigee ハイブリッドは、チャートのインストールまたはアップグレードの前に、Helm ガードレールを使用して構成を検証します。このセクションの各コマンドの出力に、ガードレール固有の情報が表示されることがあります。次に例を示します。
# Source: apigee-operator/templates/apigee-operators-guardrails.yaml apiVersion: v1 kind: Pod metadata: name: apigee-hybrid-helm-guardrail-operator namespace: APIGEE_NAMESPACE annotations: helm.sh/hook: pre-install,pre-upgrade helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded labels: app: apigee-hybrid-helm-guardrail
helm upgrade
コマンドが失敗した場合は、ガードレールの出力を使用して原因を診断できます。ガードレールで問題を診断するをご覧ください。 - Helm のアップグレード / インストール コマンドを実行する前に、コマンドの末尾に
--dry-run=server
を追加して、Helm ドライラン機能を使用します。サポートされているコマンド、オプション、使用方法の一覧は、helm install --h
をご覧ください。
インストール手順
ハイブリッド インストールでサービス アカウント認証タイプのインストール手順を選択します。
Kubernetes Secret
- まだ行っていない場合は、
APIGEE_HELM_CHARTS_HOME
ディレクトリに移動します。このディレクトリから次のコマンドを実行します。 - Apigee オペレーター / コントローラをインストールします。
- ドライラン:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- チャートをインストールします。
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Apigee Operator のインストールを確認します。
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- ドライラン:
-
Apigee データストアをインストールします。
- ドライラン:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
次のステップに進む前に状態をチェックして、
apigeedatastore
が稼働していることを確認します。kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- ドライラン:
-
Apigee テレメトリーをインストールします。
- ドライラン:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
- ドライラン:
-
Apigee Redis をインストールします。
-
ドライランを実行します。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Apigee Ingress マネージャーをインストールします。
-
ドライランを実行します。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Apigee 組織をインストールします。シェルで $ORG_NAME 環境変数を設定している場合は、次のコマンドで使用できます。
-
ドライランを実行します。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
それぞれの組織の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
-
環境をインストールします。
同時にインストールできる環境は 1 つだけです。
--set env=
ENV_NAME で環境を指定します。シェルで $ENV_NAME 環境変数を設定している場合は、次のコマンドで使用できます。-
ドライランを実行します。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME は、
apigee-env
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_NAME
と同じにします。ただし、環境と環境グループの名前が同じである場合は、環境と環境グループに対して異なるリリース名(dev-env-release
とdev-envgroup-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
チャートをインストールします。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
それぞれの環境の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
-
環境グループ(
virtualhosts
)をインストールします。- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
--set envgroup=
ENV_GROUP を使用して環境グループを指定します。シェルで $ENV_GROUP 環境変数を設定している場合は、次のコマンドで使用できます。overrides.yaml
ファイルに記載されている env グループそれぞれに対して、次のコマンドを繰り返します。ドライランを実行します。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME は、
apigee-virtualhosts
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_GROUP
と同じにします。ただし、環境グループの名前がインストール環境の環境と同じである場合は、環境グループと環境に異なるリリース名(dev-envgroup-release
とdev-env-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
チャートをインストールします。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- ApigeeRoute(AR)の状態を確認します。
virtualhosts
をインストールすると、ApigeeRouteConfig(ARC)が作成されます。これにより、Apigee ウォッチャーがコントロール プレーンから env グループ関連の詳細を pull した時点で、ApigeeRoute(AR)が内部で作成されます。このため、対応する AR の状態が実行中であることを確認します。kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
JSON ファイル
- まだ行っていない場合は、
APIGEE_HELM_CHARTS_HOME
ディレクトリに移動します。このディレクトリから次のコマンドを実行します。 - Apigee オペレーター / コントローラをインストールします。
- ドライラン:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- チャートをインストールします。
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Apigee Operator のインストールを確認します。
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- ドライラン:
-
Apigee データストアをインストールします。
- ドライラン:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
次のステップに進む前に状態をチェックして、
apigeedatastore
が稼働していることを確認します。kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- ドライラン:
-
Apigee テレメトリーをインストールします。
- ドライラン:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
- ドライラン:
-
Apigee Redis をインストールします。
-
ドライランを実行します。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Apigee Ingress マネージャーをインストールします。
-
ドライランを実行します。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Apigee 組織をインストールします。シェルで $ORG_NAME 環境変数を設定している場合は、次のコマンドで使用できます。
-
ドライランを実行します。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
それぞれの組織の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
-
環境をインストールします。
同時にインストールできる環境は 1 つだけです。
--set env=
ENV_NAME で環境を指定します。シェルで $ENV_NAME 環境変数を設定している場合は、次のコマンドで使用できます。-
ドライランを実行します。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME は、
apigee-env
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_NAME
と同じにします。ただし、環境と環境グループの名前が同じである場合は、環境と環境グループに対して異なるリリース名(dev-env-release
とdev-envgroup-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
チャートをインストールします。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
それぞれの環境の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
-
環境グループ(
virtualhosts
)をインストールします。- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
--set envgroup=
ENV_GROUP を使用して環境グループを指定します。シェルで $ENV_GROUP 環境変数を設定している場合は、次のコマンドで使用できます。overrides.yaml
ファイルに記載されている env グループそれぞれに対して、次のコマンドを繰り返します。ドライランを実行します。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME は、
apigee-virtualhosts
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_GROUP
と同じにします。ただし、環境グループの名前がインストール環境の環境と同じである場合は、環境グループと環境に異なるリリース名(dev-envgroup-release
とdev-env-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
チャートをインストールします。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- ApigeeRoute(AR)の状態を確認します。
virtualhosts
をインストールすると、ApigeeRouteConfig(ARC)が作成されます。これにより、Apigee ウォッチャーがコントロール プレーンから env グループ関連の詳細を pull した時点で、ApigeeRoute(AR)が内部で作成されます。このため、対応する AR の状態が実行中であることを確認します。kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
Vault
- まだ行っていない場合は、
APIGEE_HELM_CHARTS_HOME
ディレクトリに移動します。このディレクトリから次のコマンドを実行します。 - Apigee オペレーター / コントローラをインストールします。
- ドライラン:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- チャートをインストールします。
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Apigee Operator のインストールを確認します。
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- ドライラン:
-
Apigee データストアをインストールします。
- ドライラン:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
次のステップに進む前に状態をチェックして、
apigeedatastore
が稼働していることを確認します。kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- ドライラン:
-
Apigee テレメトリーをインストールします。
- ドライラン:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
- ドライラン:
-
Apigee Redis をインストールします。
-
ドライランを実行します。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Apigee Ingress マネージャーをインストールします。
-
ドライランを実行します。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Apigee 組織をインストールします。シェルで $ORG_NAME 環境変数を設定している場合は、次のコマンドで使用できます。
-
ドライランを実行します。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
それぞれの組織の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
-
環境をインストールします。
同時にインストールできる環境は 1 つだけです。
--set env=
ENV_NAME で環境を指定します。シェルで $ENV_NAME 環境変数を設定している場合は、次のコマンドで使用できます。-
ドライランを実行します。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME は、
apigee-env
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_NAME
と同じにします。ただし、環境と環境グループの名前が同じである場合は、環境と環境グループに対して異なるリリース名(dev-env-release
とdev-envgroup-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
チャートをインストールします。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
それぞれの環境の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
-
環境グループ(
virtualhosts
)をインストールします。- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
--set envgroup=
ENV_GROUP を使用して環境グループを指定します。シェルで $ENV_GROUP 環境変数を設定している場合は、次のコマンドで使用できます。overrides.yaml
ファイルに記載されている env グループそれぞれに対して、次のコマンドを繰り返します。ドライランを実行します。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME は、
apigee-virtualhosts
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_GROUP
と同じにします。ただし、環境グループの名前がインストール環境の環境と同じである場合は、環境グループと環境に異なるリリース名(dev-envgroup-release
とdev-env-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
チャートをインストールします。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- ApigeeRoute(AR)の状態を確認します。
virtualhosts
をインストールすると、ApigeeRouteConfig(ARC)が作成されます。これにより、Apigee ウォッチャーがコントロール プレーンから env グループ関連の詳細を pull した時点で、ApigeeRoute(AR)が内部で作成されます。このため、対応する AR の状態が実行中であることを確認します。kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
GKE 用 WIF
- まだ行っていない場合は、
APIGEE_HELM_CHARTS_HOME
ディレクトリに移動します。このディレクトリから次のコマンドを実行します。 - Apigee オペレーター / コントローラをインストールします。
- ドライラン:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- チャートをインストールします。
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Apigee Operator のインストールを確認します。
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- ドライラン:
-
Apigee データストアをインストールします。
- ドライラン:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Workload Identity Federation for GKE の Cassandra のサービス アカウント バインディングを設定します。
helm upgrade
コマンドの出力には、注 セクションにコマンドが含まれているはずです。これらのコマンドに沿って、サービス アカウントのバインディングを設定します。次の形式のコマンドが 2 つ必要です。本番環境
gcloud iam service-accounts add-iam-policy-binding CASSANDRA_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-cassandra-default]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-cassandra-default]" \ --project PROJECT_ID
および:
本番環境
kubectl annotate serviceaccount apigee-cassandra-default \ iam.gke.io/gcp-service-account=CASSANDRA_SERVICE_ACCOUNT_EMAIL \ --namespace APIGEE_NAMESPACE
非本番環境
kubectl annotate serviceaccount apigee-cassandra-default \ iam.gke.io/gcp-service-account=NON_PROD_SERVICE_ACCOUNT_EMAIL \ --namespace APIGEE_NAMESPACE
次に例を示します。
本番環境
NOTES: For Cassandra backup GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). gcloud iam service-accounts add-iam-policy-binding apigee-cassandra@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-cassandra-default]" \ --project my-project kubectl annotate serviceaccount apigee-cassandra-default \ iam.gke.io/gcp-service-account=apigee-cassandra@my-project.iam.gserviceaccount.com \ --namespace apigee
非本番環境
NOTES: For Cassandra backup GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-cassandra-default]" \ --project my-project kubectl annotate serviceaccount apigee-cassandra-default \ iam.gke.io/gcp-service-account=apigee-non-prod@my-project.iam.gserviceaccount.com \ --namespace apigee
(省略可)この時点で Cassandra バックアップを設定しない場合は、オーバーライド ファイルを編集して
cassandra.backup
スタンザを削除するかコメントアウトしてから、--dry-run
フラグなしでhelm upgrade
コマンドを実行します。Cassandra バックアップの構成の詳細については、Cassandra のバックアップと復元をご覧ください。 -
チャートをインストールします。
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
次のステップに進む前に状態をチェックして、
apigeedatastore
が稼働していることを確認します。kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- ドライラン:
-
Apigee テレメトリーをインストールします。
- ドライラン:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Workload Identity Federation for GKE の Logger と Metrics のサービス アカウント バインディングを設定します。
helm upgrade
コマンドの出力には、注 セクションにコマンドが含まれているはずです。これらのコマンドに沿って、サービス アカウントのバインディングを設定します。次の形式のコマンドが 2 つ必要です。Logger KSA:
apigee-logger-apigee-telemetry
gcloud iam service-accounts add-iam-policy-binding LOGGER_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-logger-apigee-telemetry]" \ --project PROJECT_ID
指標 KSA:
apigee-metrics-sa
本番環境
gcloud iam service-accounts add-iam-policy-binding METRICS_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-metrics-sa]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-metrics-sa]" \ --project PROJECT_ID
次に例を示します。
本番環境
NOTES: For GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). Logger KSA: apigee-logger-apigee-telemetry gcloud iam service-accounts add-iam-policy-binding apigee-logger@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-logger-apigee-telemetry]" \ --project my-project Metrics KSA: apigee-metrics-sa gcloud iam service-accounts add-iam-policy-binding apigee-metrics@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-metrics-sa]" \ --project my-project
非本番環境
NOTES: For GKE Workload Identity, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). Logger KSA: apigee-logger-apigee-telemetry gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-logger-apigee-telemetry]" \ --project my-project Metrics KSA: apigee-metrics-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-metrics-sa]" \ --project my-project
-
チャートをインストールします。
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
- ドライラン:
-
Apigee Redis をインストールします。
-
ドライランを実行します。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Apigee Ingress マネージャーをインストールします。
-
ドライランを実行します。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Apigee 組織をインストールします。シェルで $ORG_NAME 環境変数を設定している場合は、次のコマンドで使用できます。
-
ドライランを実行します。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
Workload Identity Federation for GKE、MART、Apigee Connect、UDCA、Watcher の組織スコープ コンポーネントのサービス アカウント バインディングを設定します。
helm upgrade
コマンドの出力には、注 セクションにコマンドが含まれているはずです。これらのコマンドに沿って、サービス アカウントのバインディングを設定します。4 つのコマンドがあります。MART KSA:
apigee-mart-PROJECT_ID-ORG_HASH_ID-sa
本番環境
gcloud iam service-accounts add-iam-policy-binding MART_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mart-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mart-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
Connect Agent KSA:
apigee-connect-agent-PROJECT_ID-ORG_HASH_ID-sa
本番環境
gcloud iam service-accounts add-iam-policy-binding MART_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-connect-agent-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-connect-agent-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
Mint Task Scheduler KSA:(Apigee ハイブリッドの収益化を使用している場合)
apigee-mint-task-scheduler-PROJECT_ID-ORG_HASH_ID-sa
本番環境
gcloud iam service-accounts add-iam-policy-binding MINT_TASK_SCHEDULER_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mint-task-scheduler-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-mint-task-scheduler-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
UDCA KSA:
apigee-udca-PROJECT_ID-ORG_HASH_ID-sa
本番環境
gcloud iam service-accounts add-iam-policy-binding UDCA_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
Watcher KSA:
apigee-watcher-PROJECT_ID-ORG_HASH_ID-sa
本番環境
gcloud iam service-accounts add-iam-policy-binding WATCHER_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-watcher-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-watcher-PROJECT_ID-ORG_HASH_ID-sa]" \ --project PROJECT_ID
次に例を示します。
本番環境
NOTES: For Apigee Organization GKE Workload Identity, my-project, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). MART KSA: apigee-mart-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-mart@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-mart-my-project-1a2b3c4-sa]" \ --project my-project Connect Agent KSA: apigee-connect-agent-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-mart@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-connect-agent-my-project-1a2b3c4-sa]" \ --project my-project Mint task scheduler KSA: apigee-mint-task-scheduler-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-mint-task-scheduler-my-project-1a2b3c4-sa]" \ --project my-project UDCA KSA: apigee-udca-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-udca@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-udca-my-project-1a2b3c4-sa]" \ --project my-project Watcher KSA: apigee-watcher-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-watcher@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-watcher-my-project-1a2b3c4-sa]" \ --project my-project
非本番環境
NOTES: For Apigee Organization GKE Workload Identity, my-project, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). MART KSA: apigee-mart-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-mart-my-project-1a2b3c4-sa]" \ --project my-project Connect Agent KSA: apigee-connect-agent-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-connect-agent-my-project-1a2b3c4-sa]" \ --project my-project UDCA KSA: apigee-udca-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-udca-my-project-1a2b3c4-sa]" \ --project my-project Watcher KSA: apigee-watcher-my-project-1a2b3c4-sa gcloud iam service-accounts add-iam-policy-binding apigee-non-prod@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-watcher-my-project-1a2b3c4-sa]" \ --project my-project
-
チャートをインストールします。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
それぞれの組織の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
-
環境をインストールします。
同時にインストールできる環境は 1 つだけです。
--set env=
ENV_NAME で環境を指定します。シェルで $ENV_NAME 環境変数を設定している場合は、次のコマンドで使用できます。-
ドライランを実行します。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME は、
apigee-env
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_NAME
と同じにします。ただし、環境と環境グループの名前が同じである場合は、環境と環境グループに対して異なるリリース名(dev-env-release
とdev-envgroup-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
Workload Identity Federation for GKE、Runtime、Synchronizer、UDCA の環境スコープ コンポーネントのサービス アカウント バインディングを設定します。
helm upgrade
コマンドの出力には、注 セクションにコマンドが含まれているはずです。これらのコマンドに沿って、サービス アカウントのバインディングを設定します。4 つのコマンドがあります。ランタイム KSA:
apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
本番環境
gcloud iam service-accounts add-iam-policy-binding RUNTIME_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
Synchronizer KSA:
apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
本番環境
gcloud iam service-accounts add-iam-policy-binding SYNCHRONIZER_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
UDCA KSA:
apigee-udca-PROJECT_ID-ORG_HASH_ID-ENV_NAME-ENV_HASH_ID-sa
本番環境
gcloud iam service-accounts add-iam-policy-binding UDCA_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
非本番環境
gcloud iam service-accounts add-iam-policy-binding NON_PROD_SERVICE_ACCOUNT_EMAIL \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[apigee/apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa]" \ --project PROJECT_ID
次に例を示します。
NOTES: For Apigee Environment GKE Workload Identity, my-env, please make sure to add the following membership to the IAM policy binding using the respective kubernetes SA (KSA). Runtime KSA: apigee-runtime-my-project-my-env-b2c3d4e-sa gcloud iam service-accounts add-iam-policy-binding apigee-runtime@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-runtime-my-project-my-env-b2c3d4e-sa]" \ --project my-project Synchronizer KSA: apigee-synchronizer-my-project-my-env-b2c3d4e-sa gcloud iam service-accounts add-iam-policy-binding apigee-synchronizer@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-synchronizer-my-project-my-env-b2c3d4e-sa]" \ --project my-project UDCA KSA: apigee-udca-my-project-my-env-b2c3d4e-sa: gcloud iam service-accounts add-iam-policy-binding apigee-udca@my-project.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:my-project.svc.id.goog[apigee/apigee-udca-my-project-my-env-b2c3d4e-sa]" \ --project my-project
-
チャートをインストールします。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
それぞれの環境の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
-
環境グループ(
virtualhosts
)をインストールします。- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
--set envgroup=
ENV_GROUP を使用して環境グループを指定します。シェルで $ENV_GROUP 環境変数を設定している場合は、次のコマンドで使用できます。overrides.yaml
ファイルに記載されている env グループそれぞれに対して、次のコマンドを繰り返します。ドライランを実行します。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME は、
apigee-virtualhosts
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_GROUP
と同じにします。ただし、環境グループの名前がインストール環境の環境と同じである場合は、環境グループと環境に異なるリリース名(dev-envgroup-release
とdev-env-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
チャートをインストールします。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- ApigeeRoute(AR)の状態を確認します。
virtualhosts
をインストールすると、ApigeeRouteConfig(ARC)が作成されます。これにより、Apigee ウォッチャーがコントロール プレーンから env グループ関連の詳細を pull した時点で、ApigeeRoute(AR)が内部で作成されます。このため、対応する AR の状態が実行中であることを確認します。kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
- (省略可)Kubernetes サービス アカウントのステータスは、 Google Cloud consoleの Kubernetes: ワークロードの概要ページで確認できます。
他のプラットフォームでの WIF
- まだ行っていない場合は、
APIGEE_HELM_CHARTS_HOME
ディレクトリに移動します。このディレクトリから次のコマンドを実行します。 - Apigee オペレーター / コントローラをインストールします。
- ドライラン:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
- チャートをインストールします。
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Apigee Operator のインストールを確認します。
helm ls -n APIGEE_NAMESPACE
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION operator apigee 3 2025-06-26 00:42:44.492009 -0800 PST deployed apigee-operator-1.15.1 1.15.1
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deploy apigee-controller-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 34s
- ドライラン:
-
Apigee データストアをインストールします。
- ドライラン:
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade datastore apigee-datastore/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
Cassandra バックアップまたは Cassandra 復元を有効にしている場合は、関連付けられた
apigee-cassandra
IAM サービス アカウントの権限借用を Cassandra Kubernetes サービス アカウントに許可します。-
Cassandra の IAM サービス アカウントのメールアドレスを一覧表示します。
本番環境
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-cassandra"
非本番環境
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"
出力は次のようになります。
本番環境
apigee-cassandra apigee-cassandra@my-project.iam.gserviceaccount.com False
非本番環境
apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
-
Cassandra Kubernetes サービス アカウントのリストを取得します。
kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "apigee-cassandra"
出力は次のようになります。
apigee-cassandra-backup-sa 0 7m37s apigee-cassandra-default 0 7m12s apigee-cassandra-guardrails-sa 0 6m43s apigee-cassandra-restore-sa 0 7m37s apigee-cassandra-schema-setup-my-project-1a2b2c4 0 7m30s apigee-cassandra-schema-val-my-project-1a2b2c4 0 7m29s apigee-cassandra-user-setup-my-project-1a2b2c4 0 7m22s
-
apigee-cassandra-backup-sa
またはapigee-cassandra-restore-sa
Kubernetes サービス アカウントを作成した場合は、次のコマンドを使用して、各アカウントにapigee-cassandra
IAM サービス アカウントの権限借用を許可します。本番環境
テンプレート
gcloud iam service-accounts add-iam-policy-binding \ CASSANDRA_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-cassandra@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-cassandra-backup-sa" \ --role=roles/iam.workloadIdentityUser
非本番環境
テンプレート
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-cassandra-backup-sa" \ --role=roles/iam.workloadIdentityUser
ここで
CASSANDRA_IAM_SA_EMAIL
: Cassandra IAM サービス アカウントのメールアドレス。PROJECT_NUMBER
: Workload Identity プールを作成したプロジェクトのプロジェクト番号。POOL_ID
: Workload Identity プール ID。MAPPED_SUBJECT
: ID トークンのクレームから取得した Kubernetes ServiceAccount。ほとんどのハイブリッド インストールでは、この形式はsystem:serviceaccount:APIGEE_NAMESPACE:K8S_SA_NAME
になります。apigee-cassandra-backup-sa
の場合、system:serviceaccount:apigee:apigee-cassandra-backup-sa
に似たものになります。apigee-cassandra-restore-sa
の場合、system:serviceaccount:apigee:apigee-cassandra-restore-sa
に似たものになります。
-
Cassandra の IAM サービス アカウントのメールアドレスを一覧表示します。
-
次のステップに進む前に状態をチェックして、
apigeedatastore
が稼働していることを確認します。kubectl -n APIGEE_NAMESPACE get apigeedatastore default
NAME STATE AGE default running 51s
- ドライラン:
-
Apigee テレメトリーをインストールします。
- ドライラン:
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade telemetry apigee-telemetry/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeetelemetry apigee-telemetry
NAME STATE AGE apigee-telemetry running 55s
-
関連付けられた
apigee-metrics
IAM サービス アカウントの権限借用をテレメトリー Kubernetes サービス アカウントに許可します。-
指標の IAM サービス アカウントのメールアドレスを一覧表示します。
本番環境
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-metrics"
出力は次のようになります。
apigee-metrics apigee-metrics@my-project.iam.gserviceaccount.com False
非本番環境
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"
出力は次のようになります。
apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
-
テレメトリー Kubernetes サービス アカウントのリストを取得します。
kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "telemetry"
出力は次のようになります。
apigee-metrics-apigee-telemetry 0 42m apigee-open-telemetry-collector-apigee-telemetry 0 37m
-
次のコマンドを使用して、各テレメトリー Kubernetes サービス アカウントに
apigee-metrics
IAM サービス アカウントの権限借用を許可します。本番環境
Apigee 指標 KSA:
apigee-metrics-apigee-telemetry
からapigee-metrics
Google IAM サービス アカウントコード
gcloud iam service-accounts add-iam-policy-binding \ METRICS_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-metrics@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-metrics-apigee-telemetry" \ --role=roles/iam.workloadIdentityUser
Apigee OpenTelemetry Collector KSA:
apigee-open-telemetry-collector-apigee-telemetry
からapigee-metrics
Google IAM サービス アカウントコード
gcloud iam service-accounts add-iam-policy-binding \ METRICS_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-metrics@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-open-telemetry-collector-apigee-telemetry" \ --role=roles/iam.workloadIdentityUser
非本番環境
Apigee 指標 KSA:
apigee-metrics-apigee-telemetry
からapigee-non-prod
Google IAM サービス アカウントコード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-metrics-apigee-telemetry" \ --role=roles/iam.workloadIdentityUser
Apigee OpenTelemetry Collector KSA:
apigee-open-telemetry-collector-apigee-telemetry
からapigee-non-prod
Google IAM サービス アカウントコード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-open-telemetry-collector-apigee-telemetry" \ --role=roles/iam.workloadIdentityUser
-
指標の IAM サービス アカウントのメールアドレスを一覧表示します。
- ドライラン:
-
Apigee Redis をインストールします。
-
ドライランを実行します。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade redis apigee-redis/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeredis default
NAME STATE AGE default running 79s
-
-
Apigee Ingress マネージャーをインストールします。
-
ドライランを実行します。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade ingress-manager apigee-ingress-manager/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
可用性をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get deployment apigee-ingressgateway-manager
NAME READY UP-TO-DATE AVAILABLE AGE apigee-ingressgateway-manager 2/2 2 2 16s
-
-
Apigee 組織をインストールします。シェルで $ORG_NAME 環境変数を設定している場合は、次のコマンドで使用できます。
-
ドライランを実行します。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
-
チャートをインストールします。
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
-
それぞれの組織の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeorg
NAME STATE AGE my-project-123abcd running 4m18s
-
関連付けられた IAM サービス アカウントの権限借用を組織スコープの Kubernetes サービス アカウントに許可します。
-
apigee-mart
、apigee-udca
、apigee-watcher
コンポーネントで使用される IAM サービス アカウントのメールアドレスを一覧表示します。本番環境
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-mart\|apigee-udca\|apigee-watcher"
出力は次のようになります。
apigee-mart apigee-mart@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False apigee-watcher apigee-watcher@my-project.iam.gserviceaccount.com False
Apigee ハイブリッドの収益化を使用している場合は、
apigee-mint-task-scheduler
サービス アカウントのメールアドレスも取得します。gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-mint-task-scheduler"
出力は次のようになります。
apigee-mint-task-scheduler apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com False
非本番環境
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"
出力は次のようになります。
apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
-
組織スコープの Kubernetes サービス アカウントを一覧表示します。
kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "apigee-connect-agent\|apigee-mart\|apigee-udca\|apigee-watcher"
出力は次のようになります。
apigee-connect-agent-my-project-123abcd 0 1h4m apigee-mart-my-project-123abcd 0 1h4m apigee-mint-task-scheduler-my-project-123abcd 0 1h3m apigee-udca-my-project-123abcd 0 1h2m apigee-watcher-my-project-123abcd 0 1h1m
-
次のコマンドを使用して、関連付けられた IAM サービス アカウントの権限借用を組織スコープの Kubernetes サービス アカウントに許可します。
本番環境
Connect エージェント KSA:
apigee-connect-agent-ORG_NAME-ORG_HASH_ID
Kubernetes サービス アカウントからapigee-mart
IAM サービス アカウント。コード
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_MART_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-mart@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-connect-agent-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
MART KSA:
apigee-mart-ORG_NAME-ORG_HASH_ID
Kubernetes サービス アカウントからapigee-mart
IAM サービス アカウント。MART と Connect エージェントは同じ IAM サービス アカウントを使用します。コード
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_MART_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-mart@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mart-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
Mint タスク スケジューラ KSA:(Apigee ハイブリッドの収益化を使用している場合)
apigee-mint-task-scheduler-ORG_NAME-ORG_HASH_ID
Kubernetes サービス アカウントからapigee-mint-task-scheduler
IAM サービス アカウント。コード
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_MINT_TASK_SCHEDULER_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mint-task-scheduler-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
組織をスコープとする UDCA KSA:
apigee-udca-ORG_NAME-ORG_HASH_ID
Kubernetes サービス アカウントからapigee-udca
IAM サービス アカウント。コード
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_UDCA_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-udca-task-scheduler@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
Watcher KSA:
apigee-watcher-ORG_NAME-ORG_HASH_ID
Kubernetes サービス アカウントからapigee-watcher
IAM サービス アカウント。コード
gcloud iam service-accounts add-iam-policy-binding \ APIGEE_WATCHER_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-watcher@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-watcher-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
非本番環境
Connect エージェント KSA:
apigee-connect-agent-ORG_NAME-ORG_HASH_ID
Kubernetes サービス アカウントからapigee-non-prod
IAM サービス アカウント。コード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-connect-agent-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
MART KSA:
apigee-mart-ORG_NAME-ORG_HASH_ID
Kubernetes サービス アカウントからapigee-non-prod
IAM サービス アカウント。コード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mart-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
Mint タスク スケジューラ KSA:(Apigee ハイブリッドの収益化を使用している場合)
apigee-mint-task-scheduler-ORG_NAME-UUIORG_HASH_IDD
Kubernetes サービス アカウントからapigee-non-prod
IAM サービス アカウント。コード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-mint-task-scheduler-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
組織をスコープとする UDCA KSA:
apigee-udca-ORG_NAME-ORG_HASH_ID
Kubernetes サービス アカウントからapigee-non-prod
IAM サービス アカウント。コード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
Watcher KSA:
apigee-watcher-ORG_NAME-ORG_HASH_ID
Kubernetes サービス アカウントからapigee-non-prod
IAM サービス アカウント。コード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-watcher-my-org-123abcd" \ --role=roles/iam.workloadIdentityUser
-
-
-
環境をインストールします。
同時にインストールできる環境は 1 つだけです。
--set env=
ENV_NAME で環境を指定します。シェルで $ENV_NAME 環境変数を設定している場合は、次のコマンドで使用できます。-
ドライランを実行します。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME は、
apigee-env
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_NAME
と同じにします。ただし、環境と環境グループの名前が同じである場合は、環境と環境グループに対して異なるリリース名(dev-env-release
とdev-envgroup-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
チャートをインストールします。
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
-
それぞれの環境の状態をチェックして、稼働していることを確認します。
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-my-project-my-env running 3m1s
-
環境スコープの Kubernetes サービス アカウントに、関連付けられた IAM サービス アカウントの権限借用を許可します。
-
apigee-runtime
、apigee-synchronizer
、apigee-udca
コンポーネントで使用される IAM サービス アカウントのメールアドレスを一覧表示します。本番環境
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-runtime\|apigee-synchronizer\|apigee-udca"
非本番環境
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-non-prod"
gcloud iam service-accounts list --project PROJECT_ID | grep "apigee-mart\|apigee-udca\|apigee-watcher"
出力は次のようになります。
本番環境
apigee-runtime apigee-runtime@my-project.iam.gserviceaccount.com False apigee-synchronizer apigee-synchronizer@my-project.iam.gserviceaccount.com False apigee-udca apigee-udca@my-project.iam.gserviceaccount.com False
非本番環境
apigee-non-prod apigee-non-prod@my-project.iam.gserviceaccount.com False
-
環境スコープの Kubernetes サービス アカウントを一覧表示します。
kubectl get serviceaccount -n APIGEE_NAMESPACE | grep "apigee-runtime\|apigee-synchronizer\|apigee-udca"
出力は次のようになります。
apigee-runtime-my-project--my-env-cdef123 0 19m apigee-synchronizer-my-project-my-env-cdef123 0 17m apigee-udca-my-project-123abcd 0 1h29m apigee-udca-my-project-my-env-cdef123 0 22m
-
次のコマンドを使用して、環境スコープの Kubernetes サービス アカウントに、関連付けられた IAM サービス アカウントの権限借用を許可します。
本番環境
ランタイム KSA:
apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA からapigee-runtime
Google IAM SAコード
gcloud iam service-accounts add-iam-policy-binding \ RUNTIME_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-runtime@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-runtime-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
Synchronizer KSA:
apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA からapigee-synchronizer
Google IAM SAコード
gcloud iam service-accounts add-iam-policy-binding \ SYNCHRONIZER_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-synchronizer@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-synchronizer-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
UDCA KSA:
apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA からapigee-udca
Google IAM SAコード
gcloud iam service-accounts add-iam-policy-binding \ UDCA_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-udca@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
非本番環境
ランタイム KSA:
apigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA からapigee-non-prod
Google IAM SAコード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-runtime-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
非本番環境
Synchronizer KSA:
apigee-synchronizer-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA からapigee-non-prod
Google IAM SAコード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-synchronizer-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
非本番環境
UDCA KSA:
apigee-udca-PROJECT_ID-ENV_NAME-ENV_HASH_ID-sa
KSA からapigee-non-prod
Google IAM SAコード
gcloud iam service-accounts add-iam-policy-binding \ NON_PROD_IAM_SA_EMAIL \ --member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/subject/MAPPED_SUBJECT" \ --role=roles/iam.workloadIdentityUser
例
gcloud iam service-accounts add-iam-policy-binding \ apigee-non-prod@my-project.iam.gserviceaccount.com \ --member="principal://iam.googleapis.com/projects/1234567890/locations/global/workloadIdentityPools/my-pool/subject/system:serviceaccount:apigee:apigee-udca-my-project-my-env-cdef123" \ --role=roles/iam.workloadIdentityUser
-
-
-
環境グループ(
virtualhosts
)をインストールします。- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
--set envgroup=
ENV_GROUP を使用して環境グループを指定します。シェルで $ENV_GROUP 環境変数を設定している場合は、次のコマンドで使用できます。overrides.yaml
ファイルに記載されている env グループそれぞれに対して、次のコマンドを繰り返します。ドライランを実行します。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml \ --dry-run=server
ENV_GROUP_RELEASE_NAME は、
apigee-virtualhosts
チャートのインストールとアップグレードの追跡に使用する名前です。この名前は、インストール内の他の Helm リリース名と重複していない必要があります。通常、これはENV_GROUP
と同じにします。ただし、環境グループの名前がインストール環境の環境と同じである場合は、環境グループと環境に異なるリリース名(dev-envgroup-release
とdev-env-release
など)を使用する必要があります。Helm でのリリースの詳細については、Helm ドキュメントの 3 つの大きなコンセプトをご覧ください。 -
チャートをインストールします。
helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=$ENV_GROUP \ -f overrides.yaml
- ApigeeRoute(AR)の状態を確認します。
virtualhosts
をインストールすると、ApigeeRouteConfig(ARC)が作成されます。これにより、Apigee ウォッチャーがコントロール プレーンから env グループ関連の詳細を pull した時点で、ApigeeRoute(AR)が内部で作成されます。このため、対応する AR の状態が実行中であることを確認します。kubectl -n APIGEE_NAMESPACE get arc
NAME STATE AGE apigee-org1-dev-egroup 2m
kubectl -n APIGEE_NAMESPACE get ar
NAME STATE AGE apigee-ingressgateway-internal-chaining-my-project-123abcd running 19m my-project-myenvgroup-000-321dcba running 2m30s
- 一度にインストールできる環境グループ(virtualhost)は 1 つだけです。
次のステップ
次のステップでは、Apigee Ingress ゲートウェイを構成し、プロキシをデプロイしてインストールをテストします。
(次)ステップ 1: Apigee ingress を公開する 2