安裝 Apigee Hybrid 執行階段元件
在本步驟中,您將使用 Helm 安裝下列 Apigee Hybrid 元件:
- Apigee 運算子
- Apigee 資料存放區
- Apigee 遙測
- Apigee Redis
- Apigee Ingress 管理員
- Apigee 機構
- 您的 Apigee 環境
您將逐一為每個環境安裝圖表。安裝元件的順序很重要。
安裝前注意事項
- 如果您尚未安裝 Helm 3.14.2 以上版本,請按照「安裝 Helm」中的操作說明進行安裝。
-
Apigee Hybrid 會使用 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 Operator/Controller:
- 模擬測試:
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
-
-
安裝環境。
一次只能安裝一個環境。使用
--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 說明文件中的「Three big concepts」(三大概念)。 -
安裝圖表:
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
)。- 一次只能安裝一個環境群組 (虛擬主機)。使用
--set envgroup=
ENV_GROUP 指定環境群組。如果您已在殼層中設定 $ENV_GROUP 環境變數,可以在下列指令中使用該變數。針對overrides.yaml
檔案中提及的每個環境群組,重複執行下列指令:模擬測試:
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 說明文件中的「 三大概念」。 -
安裝圖表:
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 監控程式從控制層提取環境群組相關詳細資料後,ARC 會在內部建立 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
- 一次只能安裝一個環境群組 (虛擬主機)。使用
JSON 檔案
- 如果沒有,請前往
APIGEE_HELM_CHARTS_HOME
目錄。從該目錄執行下列指令。 - 安裝 Apigee Operator/Controller:
- 模擬測試:
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
-
-
安裝環境。
一次只能安裝一個環境。使用
--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 說明文件中的「Three big concepts」(三大概念)。 -
安裝圖表:
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
)。- 一次只能安裝一個環境群組 (虛擬主機)。使用
--set envgroup=
ENV_GROUP 指定環境群組。如果您已在殼層中設定 $ENV_GROUP 環境變數,可以在下列指令中使用該變數。針對overrides.yaml
檔案中提及的每個環境群組,重複執行下列指令:模擬測試:
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 說明文件中的「 三大概念」。 -
安裝圖表:
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 監控程式從控制層提取環境群組相關詳細資料後,ARC 會在內部建立 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
- 一次只能安裝一個環境群組 (虛擬主機)。使用
保管箱
- 如果沒有,請前往
APIGEE_HELM_CHARTS_HOME
目錄。從該目錄執行下列指令。 - 安裝 Apigee Operator/Controller:
- 模擬測試:
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
-
-
安裝環境。
一次只能安裝一個環境。使用
--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 說明文件中的「Three big concepts」(三大概念)。 -
安裝圖表:
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
)。- 一次只能安裝一個環境群組 (虛擬主機)。使用
--set envgroup=
ENV_GROUP 指定環境群組。如果您已在殼層中設定 $ENV_GROUP 環境變數,可以在下列指令中使用該變數。針對overrides.yaml
檔案中提及的每個環境群組,重複執行下列指令:模擬測試:
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 說明文件中的「 三大概念」。 -
安裝圖表:
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 監控程式從控制層提取環境群組相關詳細資料後,ARC 會在內部建立 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
- 一次只能安裝一個環境群組 (虛擬主機)。使用
GKE 的 WIF
- 如果沒有,請前往
APIGEE_HELM_CHARTS_HOME
目錄。從該目錄執行下列指令。 - 安裝 Apigee Operator/Controller:
- 模擬測試:
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
-
為 Cassandra 設定服務帳戶繫結,以搭配 GKE 適用的工作負載身分聯盟:
helm upgrade
指令的輸出內容應包含 NOTES 區段中的指令。請按照這些指令設定服務帳戶繫結。應有兩個指令,格式如下:正式環境
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
節,然後執行helm upgrade
指令,但不要使用--dry-run
標記。如要進一步瞭解如何設定 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
-
為 Loggeer 和 Metrics 設定服務帳戶繫結,以搭配 GKE 適用的工作負載身分聯盟:
helm upgrade
指令的輸出內容應包含 NOTES 區段中的指令。請按照這些指令設定服務帳戶繫結。應有兩個指令,格式如下: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
指令的輸出內容應包含 NOTES 區段中的指令。請按照這些指令設定服務帳戶繫結。應該有四個指令。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: (如果您使用 Monetization for Apigee hybrid)
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
-
-
安裝環境。
一次只能安裝一個環境。使用
--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 說明文件中的「Three big concepts」(三大概念)。 -
為 Workload Identity Federation for GKE、Runtime、Synchronizer 和 UDCA,設定環境範圍元件的服務帳戶繫結。
helm upgrade
指令的輸出內容應包含 NOTES 區段中的指令。請按照這些指令設定服務帳戶繫結。應該有四個指令。執行階段 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
)。- 一次只能安裝一個環境群組 (虛擬主機)。使用
--set envgroup=
ENV_GROUP 指定環境群組。如果您已在殼層中設定 $ENV_GROUP 環境變數,可以在下列指令中使用該變數。針對overrides.yaml
檔案中提及的每個環境群組,重複執行下列指令:模擬測試:
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 說明文件中的「 三大概念」。 -
安裝圖表:
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 監控程式從控制層提取環境群組相關詳細資料後,ARC 會在內部建立 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
- 一次只能安裝一個環境群組 (虛擬主機)。使用
- (選用) 您可以在 Google Cloud console的「Kubernetes: Workloads Overview」(Kubernetes:工作負載總覽) 頁面中,查看 Kubernetes 服務帳戶的狀態。
在其他平台使用 WIF
- 如果沒有,請前往
APIGEE_HELM_CHARTS_HOME
目錄。從該目錄執行下列指令。 - 安裝 Apigee Operator/Controller:
- 模擬測試:
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 還原功能,請授予 Cassandra Kubernetes 服務帳戶權限,模擬相關聯的
apigee-cassandra
IAM 服務帳戶。-
列出 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 的專案專案編號。POOL_ID
:工作負載身分集區 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
-
授予遙測 Kubernetes 服務帳戶權限,模擬相關聯的
apigee-metrics
IAM 服務帳戶。-
列出指標的 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
-
授予機構範圍的 Kubernetes 服務帳戶權限,模擬相關聯的 IAM 服務帳戶。
-
列出
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 Hybrid 的營利功能,請一併取得
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
-
使用下列指令,授予機構範圍的 Kubernetes 服務帳戶權限,模擬相關聯的 IAM 服務帳戶,如下所示:
正式環境
連結代理程式 KSA:將 Kubernetes 服務帳戶
apigee-connect-agent-ORG_NAME-ORG_HASH_ID
連結至 IAM 服務帳戶apigee-mart
。程式碼
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 Hybrid 營利服務)
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:Kubernetes 服務帳戶對應至
apigee-udca
IAM 服務帳戶。apigee-udca-ORG_NAME-ORG_HASH_ID
程式碼
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
監控程式 KSA:從 Kubernetes 服務帳戶
apigee-watcher-ORG_NAME-ORG_HASH_ID
轉換為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
非正式環境
連結代理程式 KSA:將 Kubernetes 服務帳戶
apigee-connect-agent-ORG_NAME-ORG_HASH_ID
連結至 IAM 服務帳戶apigee-non-prod
。程式碼
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:從 Kubernetes 服務帳戶到 IAM 服務帳戶。
apigee-mart-ORG_NAME-ORG_HASH_ID
apigee-non-prod
程式碼
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 Hybrid 營利服務)
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:Kubernetes 服務帳戶對應至
apigee-non-prod
IAM 服務帳戶。apigee-udca-ORG_NAME-ORG_HASH_ID
程式碼
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
監控程式 KSA:從 Kubernetes 服務帳戶
apigee-watcher-ORG_NAME-ORG_HASH_ID
轉換為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
-
列出
-
-
安裝環境。
一次只能安裝一個環境。使用
--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 說明文件中的「Three big concepts」(三大概念)。 -
安裝圖表:
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:KSA 至
apigee-runtime
Google IAM SAapigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-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
同步器 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:KSA 至
apigee-non-prod
Google IAM SAapigee-runtime-PROJECT_ID-ENV_NAME-ENV_HASH_ID-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
非正式環境
同步器 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
)。- 一次只能安裝一個環境群組 (虛擬主機)。使用
--set envgroup=
ENV_GROUP 指定環境群組。如果您已在殼層中設定 $ENV_GROUP 環境變數,可以在下列指令中使用該變數。針對overrides.yaml
檔案中提及的每個環境群組,重複執行下列指令:模擬測試:
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 說明文件中的「 三大概念」。 -
安裝圖表:
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 監控程式從控制層提取環境群組相關詳細資料後,ARC 會在內部建立 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
- 一次只能安裝一個環境群組 (虛擬主機)。使用
下一步
在下一個步驟中,您將設定 Apigee Ingress 閘道,並部署 Proxy 來測試安裝作業。
(NEXT) Step 1: Expose Apigee ingress 2