本頁內容適用於 Apigee 和 Apigee Hybrid。
查看
Apigee Edge 說明文件。
本頁說明如何建立 APIMExtensionPolicy
,在叢集中執行的 Google Kubernetes Engine (GKE) Gateway 上建立必要的流量擴充功能。
事前準備
開始這項工作前,請先完成下列步驟:
- 確認 GKE 叢集已設定 Workload Identity。如需必要步驟,請參閱「建立工作負載身分」。
- 確認叢集已設定並正常運作 GKE Gateway。詳情請參閱「部署閘道」。
- 安裝 Kubernetes 適用的 Apigee 運算子。如需安裝操作說明,請參閱「安裝 Kubernetes 適用的 Apigee Operator」。
必要的角色
如果您已按照「 安裝 Kubernetes 適用的 Apigee Operator」一文的說明,將必要角色指派給服務帳戶,則完成這些工作時不需要其他 IAM 角色或權限。
您可以選擇使用 Kubernetes 內建的角色型存取權控管 (RBAC) 機制,授權在 Google Kubernetes Engine 叢集中的資源上執行動作。詳情請參閱「 使用角色型存取控制授權叢集中的動作」。
建立 APIMExtensionPolicy
在這個步驟中,請建立 APIMExtensionPolicy
,並將其套用至叢集中執行的 GKE Gateway。
這項政策會控管通過閘道和相關聯 HTTPRoutes
的所有流量,運作方式與目前 Apigee 環境層級的流程掛鉤類似。
建立 APIM 擴充功能政策:
- 在
apim
命名空間中建立名為global-ext-lb1-apim-policy.yaml
的新檔案。 - 將下列內容複製到新檔案中:
# global-ext-lb1-apim-policy.yaml apiVersion: apim.googleapis.com/v1 kind: APIMExtensionPolicy metadata: name: global-ext-lb1-apim-policy namespace: apim spec: apigeeEnv: ENV_NAME # optional location: global failOpen: false timeout: 1000ms defaultSecurityEnabled: true targetRef: # identifies the Gateway where the extension should be applied name: global-ext-lb1 kind: Gateway namespace: default
其中 ENV_NAME 是在安裝步驟「建立 Apigee 環境」中建立的 Apigee 環境名稱。
您可以在 Google Cloud 控制台的「Apigee Environments」(Apigee 環境) 頁面中,查看所有可用環境:
- 套用政策:
kubectl -n apim apply -f global-ext-lb1-apim-policy.yaml
套用政策後,Kubernetes 適用的 Apigee Operator 會在背景建立網路資源。
- 使用下列指令檢查 APIM 擴充功能政策的狀態:
kubectl -n apim get APIMExtensionPolicy
輸出內容應如下所示,並顯示
State
的RUNNING
:NAME STATE ERRORMESSAGE global-ext-lb1-apim-policy RUNNING
- 使用下列指令將要求傳送至 Gateway:
curl http://GATEWAY_IP_ADDRESS/get -H "Host: HOST_NAME"
其中:
GATEWAY_IP_ADDRESS
是閘道的 IP 位址。您可以使用下列指令擷取閘道 IP 位址,其中GATEWAY_NAME
是閘道的名稱:kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
HOST_NAME
是在 Gateway 的HTTPRoute
中定義的主機名稱。
- 由於 API 擴充功能政策資源中已設定
defaultSecurityEnabled: true
,啟用預設安全性,因此要求應會失敗。畫面會顯示類似以下的回應:{"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}
這表示 Apigee 擴充功能政策已啟用,且 API 金鑰強制執行和存取權杖驗證也已啟用。