管理 Apigee 入口閘道

自 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_MINREPLICAS_MAX:安裝環境中 Apigee 入口網關的複本數量下限和上限。請參閱設定屬性參考資料中的 ingressGateways[].replicaCountMiningressGateways[].replicaCountMax
  • CPU_COUNT_REQMEMORY_REQ:安裝環境中 Apigee 入口閘道每個備援機器的 CPU 和記憶體要求。

    請參閱設定屬性參考資料中的 ingressGateways[].resources.requests.cpuingressGateways[].resources.requests.memory

  • CPU_COUNT_LIMITMEMORY_LIMIT:安裝環境中 Apigee 入口網關每個副本的 CPU 和記憶體上限。

    請參閱設定屬性參考資料中的 ingressGateways[].resources.limits.cpuingressGateways[].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.accessLogFileistiod.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 閘道搭配使用。