自 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 入口閘道的常見管理工作:
擴充 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 入口網關部署。在以下範例中,虛擬主機 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
在 Apigee 入口閘道部署中新增自訂密碼組合
您可以使用覆寫檔案中的 virtualhosts.cipherSuites
屬性,將自訂密碼組加入 Apigee 入口網關部署作業。
如要瞭解 Apigee hybrid 中啟用的預設加密組合,請參閱 virtualhosts.cipherSuites
。
您可以使用 virtualhosts.minTLSProtocolVersion
屬性啟用舊版 TLS,並在覆寫檔案中使用 virtualhosts.cipherSuites
屬性,將自訂密碼組新增至 Apigee 入口網站閘道部署。
舉例來說,如要啟用 TLS 1.1:
virtualhosts: - name: ENV_GROUP_NAME minTLSProtocolVersion: "1.1" cipherSuites: - "ECDHE-ECDSA-AES128-GCM-SHA256" - "ECDHE-RSA-AES128-GCM-SHA256" - "ECDHE-ECDSA-AES256-GCM-SHA384" - "ECDHE-RSA-AES256-GCM-SHA384" - "ECDHE-ECDSA-CHACHA20-POLY1305" - "ECDHE-RSA-CHACHA20-POLY1305" - "ECDHE-ECDSA-AES128-SHA" - "ECDHE-RSA-AES128-SHA" - "ECDHE-ECDSA-AES256-SHA" - "ECDHE-RSA-AES256-SHA" ...
自訂 Ingress 存取記錄
您可以使用 istiod.accessLogFile
和 istiod.accessLogFormat
設定屬性,自訂 Apigee 入口網站閘道存取記錄的目的和格式。在以下範例中,輸出內容會傳送至 /dev/stdout
,這是 istiod.accessLogFile
的預設值:
istiod: accessLogFormat: '{"request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","status":"%RESPONSE_CODE%"}'
您可以指派 istiod.accessLogFile
和空值,停用 Apigee 入口網關存取記錄。例如:
istiod: accessLogFile: ''
常見問題
- 這項功能如何與位於其他命名空間的現有 Anthos 服務網格/Istio 安裝作業搭配運作?
- 只要 Apigee 安裝在專屬命名空間中,Apigee 入口網關就能與叢集中現有的 Anthos 服務網格/Istio 安裝作業一併執行。Apigee 入口閘道不會在 apiserver 中儲存任何設定,因此不會發生任何衝突。
- 誰負責升級 Apigee 入口閘道元件?
- Apigee 會負責升級 Apigee 入口網站閘道元件,並在定期的混合升級和修補程式發布期間進行。
- 如何在 Apigee 入口閘道中公開通訊埠 80?
- Apigee 入口閘道不支援通訊埠 80。如果您要從 Anthos 服務網格遷移至 Apigee 入口閘道,並按照社群文章中的操作說明啟用通訊埠 80,則無法與 Apigee Ingress 閘道搭配使用。