自 Apigee Hybrid 1.8 版起,Apigee Hybrid 會使用 Apigee Ingress 閘道,為 Hybrid 提供 Ingress 閘道。
設定 Apigee 入口閘道
您可以在 overrides.yaml
中設定入口閘道。例如:
語法
ingressGateways: - name: INGRESS_NAME replicaCountMin: REPLICAS_MIN replicaCountMax: REPLICAS_MAX resources: requests: cpu: CPU_COUNT_REQ memory: MEMORY_REQ limits: cpu: CPU_COUNT_LIMIT memory: MEMORY_LIMIT svcAnnotations: # optional. SVC_ANNOTATIONS_KEY: SVC_ANNOTATIONS_VALUE svcLoadBalancerIP: SVC_LOAD_BALANCER_IP # optional
範例
ingressGateways: - name: prod1 replicaCountMin: 2 replicaCountMax: 100 resources: requests: cpu: 1 memory: 1Gi limits: cpu: 2 memory: 2Gi svcAnnotations: # optional. See Known issue 243599452. networking.gke.io/load-balancer-type: "Internal" svcLoadBalancerIP: 198.252.0.123
- INGRESS_NAME 是入口閘道部署作業的名稱。這個名稱可以是符合下列規定的任何名稱:
- 長度上限為 17 個半形字元
- 只能包含小寫英數字元、連字號 (-) 或「.」。
- 開頭必須是英數字元
- 結尾須為英數字元
請參閱設定屬性參考資料中的
ingressGateways[].name
- REPLICAS_MIN 和 REPLICAS_MAX:安裝環境中 Apigee 入口網關的複本數量下限和上限。請參閱設定屬性參考資料中的
ingressGateways[].replicaCountMin
和ingressGateways[].replicaCountMax
。 - CPU_COUNT_REQ 和 MEMORY_REQ:安裝環境中 Apigee 入口閘道每個備援機器的 CPU 和記憶體要求。
請參閱設定屬性參考資料中的
ingressGateways[].resources.requests.cpu
和ingressGateways[].resources.requests.memory
。 - CPU_COUNT_LIMIT 和 MEMORY_LIMIT:安裝環境中 Apigee 入口網關每個副本的 CPU 和記憶體上限。
請參閱設定屬性參考資料中的
ingressGateways[].resources.limits.cpu
和ingressGateways[].resources.limits.memory
。 - SVC_ANNOTATIONS_KEY SVC_ANNOTATIONS_VALUE (選用):
這是一個鍵/值組合,可為預設的 ingress 服務提供註解。雲端平台會使用註解來協助設定混合式安裝作業,例如將負載平衡器類型設為內部或外部。例如:
ingressGateways: svcAnnotations: networking.gke.io/load-balancer-type: "Internal"
註解會因平台而異。請參閱平台說明文件,瞭解必要和建議的註解。
請參閱設定屬性參考資料中的ingressGateways[].svcAnnotations
。 - SVC_LOAD_BALANCER_IP (選用)。在支援指定負載平衡器 IP 位址的平台上,負載平衡器會使用這個 IP 位址建立。如果平台不允許您指定負載平衡器 IP 位址,系統會忽略這個屬性。
請參閱設定屬性參考資料中的
ingressGateways[].svcLoadBalancerIP
。
套用 Apigee 入口閘道設定
使用 apigeectl
將變更套用至機構範圍。
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --org
管理工作
Apigee 入口閘道的常見管理工作:
停止向 ASM 提供設定
升級至 Apigee hybrid v1.8 並將流量遷移至 Apigee 入口網關後,您可以停止向 Anthos 服務網格提供路由設定。
-
更新 Apigee 控制器,停止在 API 伺服器中更新 Anthos 服務網格 CR 物件。在覆寫檔案中設定:
ao: args: disableIstioConfigInAPIServer: true
- 由於上一個指令會重新啟動控制器,因此請使用下列指令檢查部署作業的狀態:
$APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
-
更新
virtualhosts
。每個虛擬主機都必須包含app
選取器標籤,且值為app: apigee-ingressgateway
。這項異動後,Anthos 服務網格閘道將無法讀取 Apigee 轉送設定。在每個虛擬主機中新增或取代
selector
屬性,如下所示:virtualhosts: - name: ENV_GROUP selector: app: apigee-ingressgateway # required ...
套用設定變更:
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
詳情請參閱設定屬性參考資料中的
virtualhosts.selector
。
套用設定變更:
$APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
如需詳細資訊,請參閱設定屬性參考資料中的 ao
。
擴充 Apigee 入口閘道:
在覆寫檔案中更新下列屬性。
ingressGateways[].replicaCountMax
ingressGateways[].replicaCountMin
如需詳細資訊,請參閱設定屬性參考資料中的 ingressGateways
。
使用 apigeectl apply --org
套用變更。
更新資源分配
在覆寫檔案中更新下列屬性。
ingressGateways[].resources.limits.cpu
ingressGateways[].resources.limits.memory
ingressGateways[].resources.requests.cpu
ingressGateways[].resources.requests.memory
如需詳細資訊,請參閱設定屬性參考資料中的 ingressGateways
。
使用 apigeectl apply --org
套用變更。
更新 Apigee 入口閘道服務
在覆寫檔案中更新下列屬性。
ingressGateways[].svcAnnotations
ingressGateways[].svcLoadBalancerIP
如需詳細資訊,請參閱設定屬性參考資料中的 ingressGateways
。
使用 apigeectl apply --org
套用變更。
為預設 Apigee 入口閘道服務停用負載平衡器:
如果您為輸入閘道部署作業建立自訂 Kubernetes 服務,可以停用在預設 Kubernetes 服務上建立負載平衡器的功能。在覆寫檔案中,將 ingressGateways[].svcType
屬性更新為 ClusterIP
。例如:
ingressGateways: - name: my-ingress-gateway replicaCountMin: 2 replicaCountMax: 10 svcType: ClusterIP
使用 apigeectl apply --org
套用變更。
設定 TLS 和 mTLS
請參閱「在輸入網關上設定 TLS 和 mTLS」。
啟用非 SNI 用戶端
請參閱「啟用非 SNI 和 HTTP 用戶端」一文。
安裝其他 Apigee 入口閘道
您可以在 overrides.yaml
檔案中新增多個入口閘道。ingressGateways
設定屬性為陣列。詳情請參閱設定屬性參考資料中的 ingressGateways。
例如:
ingressGateways: - name: fruit replicaCountMin: 2 replicaCountMax: 10 - name: meat replicaCountMin: 2 replicaCountMax: 10
使用 apigeectl apply --org
套用變更。
將 Apigee 入口指定至虛擬主機
您可以在覆寫檔案中,將標示為 Apigee 入口網關的目標指定為特定虛擬主機。這項設定會指定 Apigee 會套用虛擬主機設定的入口閘道。在以下範例中,虛擬主機 spam-vh
會設為使用標示為 meat
的入口閘道,而其他兩個虛擬主機則會使用 fruit
入口閘道。如安裝其他 Anthos 服務網格閘道所述,輸入閘道必須正確標示。
virtualhosts: - name: spam-vh sslCertPath: cert-spam.crt sslKeyPath: cert-spam.key selector: app: apigee-ingressgateway ingress_name: meat - name: banana-vh sslCertPath: cert-banana.crt sslKeyPath: cert-banana.key selector: app: apigee-ingressgateway ingress_name: fruit - name: plum-vh sslCertPath: cert-plum.crt sslKeyPath: cert-plum.key selector: app: apigee-ingressgateway ingress_name: fruit
常見問題
- 這項功能如何與位於其他命名空間的現有 Anthos 服務網格/Istio 安裝作業搭配運作?
- 只要 Apigee 安裝在專屬命名空間中,Apigee 入口網關就能與叢集中現有的 Anthos 服務網格/Istio 安裝作業一併執行。Apigee 入口閘道不會在 apiserver 中儲存任何設定,因此不會發生任何衝突。
- 誰負責升級 Apigee 入口閘道元件?
- Apigee 會負責升級 Apigee 入口網站閘道元件,並在定期的混合升級和修補程式發布期間進行。
- 如何在 Apigee 入口閘道中公開通訊埠 80?
- Apigee 入口閘道不支援通訊埠 80。如果您要從 Anthos 服務網格遷移至 Apigee 入口閘道,並按照社群文章中的操作說明啟用通訊埠 80,則無法與 Apigee Ingress 閘道搭配使用。