自 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 閘道搭配使用。