自 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[].replicaCountMaxingressGateways[].replicaCountMin
  如需詳細資訊,請參閱設定屬性參考資料中的 ingressGateways。
  使用 apigeectl apply --org 套用變更。
更新資源分配
在覆寫檔案中更新下列屬性。
ingressGateways[].resources.limits.cpuingressGateways[].resources.limits.memoryingressGateways[].resources.requests.cpuingressGateways[].resources.requests.memory
  如需詳細資訊,請參閱設定屬性參考資料中的 ingressGateways。
  使用 apigeectl apply --org 套用變更。
更新 Apigee 入口閘道服務
在覆寫檔案中更新下列屬性。
ingressGateways[].svcAnnotationsingressGateways[].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 閘道搭配使用。