從 Apigee Hybrid 1.8 版開始,Apigee Hybrid 會使用 Apigee Ingress 閘道,為 Hybrid 提供 Ingress 閘道。
設定 Apigee 進入閘道
您可以在 overrides.yaml 中設定 Ingress 閘道。例如:
語法
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 是 Ingress 閘道部署作業的名稱。這個名稱必須符合下列規定:
- 長度上限為 17 個半形字元
- 只能包含小寫英數字元、「-」或「.」
- 開頭為英數字元
- 結尾為英數字元
請參閱「設定屬性參考資料」一節中的
ingressGateways[].name。 - REPLICAS_MIN 和 REPLICAS_MAX:安裝中 Apigee Ingress 閘道的副本數量下限和上限。請參閱設定屬性參考資料中的
ingressGateways[].replicaCountMin和ingressGateways[].replicaCountMax。 - CPU_COUNT_REQ 和 MEMORY_REQ:安裝中每個 Apigee Ingress 閘道副本的 CPU 和記憶體要求。
請參閱設定屬性參考資料中的
ingressGateways[].resources.requests.cpu和ingressGateways[].resources.requests.memory。 - CPU_COUNT_LIMIT 和 MEMORY_LIMIT:安裝中每個 Apigee Ingress 閘道副本的 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 Ingress 閘道的常見管理工作包括:
擴縮 Apigee Ingress 閘道:
在覆寫檔案中更新下列屬性。
ingressGateways[].replicaCountMaxingressGateways[].replicaCountMin
詳情請參閱設定屬性參考資料中的 ingressGateways。
使用 apigeectl apply --org 套用變更。
更新資源分配
在覆寫檔案中更新下列屬性。
ingressGateways[].resources.limits.cpuingressGateways[].resources.limits.memoryingressGateways[].resources.requests.cpuingressGateways[].resources.requests.memory
詳情請參閱設定屬性參考資料中的 ingressGateways。
使用 apigeectl apply --org 套用變更。
更新 Apigee Ingress 閘道服務
在覆寫檔案中更新下列屬性。
ingressGateways[].svcAnnotationsingressGateways[].svcLoadBalancerIP
詳情請參閱設定屬性參考資料中的 ingressGateways。
使用 apigeectl apply --org 套用變更。
停用預設 Apigee Ingress 閘道服務的負載平衡器:
如果您為 Ingress 閘道部署建立自訂 Kubernetes 服務,可以停用預設 Kubernetes 服務的負載平衡器建立作業。在覆寫檔案中,將 ingressGateways[].svcType 屬性更新為 ClusterIP。例如:
ingressGateways:
- name: my-ingress-gateway
replicaCountMin: 2
replicaCountMax: 10
svcType: ClusterIP
使用 apigeectl apply --org 套用變更。
設定 TLS 和 mTLS
請參閱「在 Ingress 閘道上設定 TLS 和 mTLS」。
啟用 non-SNI 用戶端
請參閱「啟用非 SNI 和 HTTP 用戶端」。
安裝其他 Apigee Ingress 閘道
您可以在 overrides.yaml 檔案中新增多個 Ingress 閘道。ingressGateways 設定屬性是陣列。詳情請參閱「設定屬性參考資料」中的 ingressGateways。
例如:
ingressGateways: - name: fruit replicaCountMin: 2 replicaCountMax: 10 - name: meat replicaCountMin: 2 replicaCountMax: 10
使用 apigeectl apply --org 套用變更。
將虛擬主機對應至 Apigee Ingress 閘道部署作業
您可以使用選取器標籤,將虛擬主機對應至 Apigee Ingress 閘道部署作業。在下列範例中,虛擬主機 spam-vh 設定為在標示為 meat 的 Ingress 閘道上執行,另外兩個虛擬主機則在 fruit Ingress 閘道上執行。輸入閘道必須正確標示,如「安裝其他 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 進入閘道部署作業中新增自訂密碼套件
Apigee Hybrid 支援 TLS v1.2 加密套件。如果您使用 TLS v1.0 或 v1.1,可以在覆寫檔案中使用 virtualhosts.cipherSuites 屬性,將自訂密碼套件新增至 Apigee Ingress 閘道部署作業。
舉例來說,如要支援 TLS v.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" ...
舉例來說,如要支援 TLS v.1.0,請執行下列操作:
virtualhosts: - name: ENV_GROUP minTLSProtocolVersion: "1.0" 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 Ingress 閘道存取記錄目的地和格式。在下列範例中,輸出內容會傳送至 /dev/stdout,這是 istiod.accessLogFile 的預設值:
istiod:
accessLogFormat: '{"request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","status":"%RESPONSE_CODE%"}'
您可以指派 istiod.accessLogFile 和空白值,停用 Apigee Ingress 閘道存取記錄。例如:
istiod: accessLogFile: ''
常見問題
- 如果我在其他命名空間中安裝了 Anthos 服務網格/Istio,這項功能會如何運作?
- 只要 Apigee 安裝在專屬命名空間中,Apigee Ingress 閘道就能與叢集中現有的 Anthos Service Mesh/Istio 安裝項目並行運作。Apigee Ingress 閘道不會在 apiserver 中儲存任何設定,因此不會發生任何衝突。
- 誰負責升級 Apigee Ingress 閘道元件?
- Apigee 會負責升級 Apigee Ingress Gateway 元件,並在定期進行 Hybrid 升級和發布修補程式時執行這項作業。
- 如何在 Apigee Ingress 閘道中公開通訊埠 80?
- Apigee Ingress 閘道不支援通訊埠 80。如果您要從 Anthos Service Mesh 遷移至 Apigee Ingress 閘道,並按照社群貼文中的操作說明啟用通訊埠 80,則無法搭配 Apigee Ingress 閘道使用。