本主題說明如何設定及管理 Apigee Hybrid 執行階段平面元件。如需可設定的執行階段平面元件清單,請參閱「執行階段服務設定總覽」。
關於覆寫檔案
首次在叢集中安裝混合式執行階段時,您必須建立設定覆寫檔案。您可視需要使用這個檔案覆寫預設設定值、設定環境、參照 TLS 憑證和服務帳戶金鑰、將 Kubernetes 節點集區指派給特定混合式元件等。
Hybrid 安裝步驟會逐步說明如何建立覆寫檔案,並將設定套用至叢集。如要變更設定,請修改您建立的覆寫檔案,然後重新套用。
變更設定
如要變更混合式執行階段平面元件的設定,請編輯覆寫檔案,然後使用 Helm 升級與該元件對應的圖表。下表顯示哪些圖表對應哪些 Apigee Hybrid 元件:
範圍 | 元件 | Helm 資訊套件 |
---|---|---|
Apigee 運算子 | Apigee 運算子 | apigee-operator |
儲存空間 | Cassandra | apigee-datastore |
記憶體內儲存空間 | Redis | apigee-redis |
報告 | 記錄器 指標 |
apigee-telemetry |
輸入流量 | Apigee Ingress 閘道 | apigee-ingress-manager |
機構 | Apigee Connect 代理程式 MART UDCA Watcher |
apigee-org |
環境 | 執行階段 同步處理工具 |
apigee-env |
環境群組 | virtualhost | apigee-virtualhost |
舉例來說,如要變更訊息處理器上的副本數量,請按照下列步驟操作:
- 開啟 OVERRIDES
.yaml
檔案。請務必使用將混合式執行階段安裝至叢集時所用的覆寫檔案。 - 找出檔案中的
runtime
元素。例如:runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-runtime replicaCountMin: 1 replicaCountMax: 2 ...
-
視需要變更備用資源數量屬性。例如:
runtime: nodeSelector: key: cloud.google.com/gke-nodepool value: apigee-runtime replicaCountMin: 2 replicaCountMax: 20 ...
- 升級環境。
- ENV_RELEASE_NAME 是您先前安裝
apigee-env
圖表時使用的名稱。在 Hybrid 1.10 中,這通常是apigee-env-ENV_NAME
。在 Hybrid 1.11 以上版本中,通常是 ENV_NAME。 - ENV_NAME 是您要升級的環境名稱。
- OVERRIDES_FILE 是 v.1.13.4 的新覆寫檔案
- 升級圖表:
- 檢查相應環境的狀態,確認該環境已啟動並執行:
一次只能安裝一個環境。使用 --set env=
ENV_NAME 指定環境。
模擬測試:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run=server
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
kubectl -n APIGEE_NAMESPACE get apigeeenv
NAME STATE AGE GATEWAYTYPE apigee-org1-dev-xxx running 2d
您可以修改哪些設定屬性?
如需可設定屬性的完整清單,請參閱「設定屬性參考資料」。 參考資料只會列出可修改的屬性;如果您嘗試修改參考資料中沒有的屬性,系統會忽略該變更。
如何使用設定參照
設定屬性參照使用點記號表示法來描述設定元素,其中第一個項目是頂層元素名稱,後面接著屬性和子項屬性。例如:
ao.image.pullPolicy
在覆寫檔案中,屬性會以正確的 YAML 格式設定。以上述範例來說,頂層 ao
元素會向左縮排,子元素屬性則會縮排至該元素下方。此外,YAML 規定每個元素和子元素結尾都必須加上半形冒號。
舉例來說,如要將 ao.image.pullPolicy
屬性設為 Always
,請在覆寫檔案中找出這個 YAML 節,然後依下列方式設定:
ao: image: pullPolicy: Always
再舉一例,屬性 cassandra.auth.admin.password
(如設定屬性參考資料中所列) 用於設定 Cassandra 管理員密碼。如要變更,請在覆寫檔案中找出下列 YAML,然後依下列方式設定:
cassandra: auth: admin: password: abc123
請注意,設定屬性參考資料說明瞭您可以在混合式執行階段平面元件上設定的所有屬性。請按照上述模式修改覆寫檔案中的這些元素,然後再將變更套用至叢集。
使用預先定義的範例覆寫檔案
首次安裝混合式執行階段時,Apigee 建議使用預先設定的範例覆寫檔案。這些範例提供特定安裝情境的完整設定屬性集,例如設定正式版或測試版安裝。您只需要為屬性提供適當的值,並將覆寫檔案套用至叢集。詳情請參閱「步驟 6:建立覆寫內容」。
關於設定預設值
Apigee 會在 HYBRID_ROOT_DIR/config/values.yaml
檔案中保留預設元件設定。覆寫檔案遵循與 values.yaml
相同的 YAML 結構。
覆寫檔案通常只包含 values.yaml
中的部分設定屬性。請注意,並非所有屬性都能編輯。將設定套用至叢集時,系統會合併覆寫項目和預設值,建立完整的 Kubernetes 叢集設定。另請參閱測試合併設定。
下列程式碼顯示 values.yaml
中的 mart
元件預設設定。請注意,部分值有預設值,但 sslCertPath
和 sslKeyPath
等值則沒有。您必須在覆寫檔案中提供這些遺漏值,詳情請參閱安裝步驟。
如要變更任何預設值,請在「設定屬性參照」中確認這些值是否可編輯。
... mart: replicaCountMin: 2 replicaCountMax: 4 targetCPUUtilizationPercentage: 75 terminationGracePeriodSeconds: 30 sslCertPath: sslKeyPath: hostAlias: nodeSelector: key: value: revision: blue image: url: "gcr.io/apigee-release/hybrid/apigee-mart-server" tag: "1.13.4" pullPolicy: IfNotPresent resources: requests: cpu: 500m memory: 512Mi initCheckCF: resources: requests: cpu: 10m livenessProbe: timeoutSeconds: 1 failureThreshold: 12 periodSeconds: 5 initialDelaySeconds: 15 readinessProbe: timeoutSeconds: 1 successThreshold: 1 failureThreshold: 2 periodSeconds: 5 initialDelaySeconds: 15 metricsURL: "/v1/server/metrics" cwcAppend: | ...
如要修改元件的預設值,且元件尚未位於覆寫檔案中,您可以從 values.yaml
將元件的 YAML 複製到覆寫檔案,並在該處修改。
自訂註解
註解是鍵/值對應,用於將中繼資料附加至 Apigee Hybrid Kubernetes Pod。 您可以為設定屬性參考資料中列出的下列屬性建立自訂註解:
如要新增自訂註解,請在相應元件的 OVERRIDES.yaml
檔案中新增節。
以下範例說明如何在 runtime
Pod 中指定註解:
runtime: annotations: businessunit: "bu1"
測試合併後的設定
您可以使用 --dry-run
標記測試合併的設定檔,而不必實際套用至叢集。這個選項可顯示將套用至叢集的內容,因此有助於偵錯安裝問題。此外,建議您測試設定並儲存在來源控制項中,以便參考叢集中安裝及設定的資源。
kubectl apply -k apigee-operator/etc/crds/default/
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml \ --dry-run=server
helm upgrade ingress-manager apigee-ingress-manager/ / --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE.yaml \ --dry-run=server
視需要建立多個覆寫檔案
您可以視需要建立多個覆寫檔案,每個檔案都符合特定需求。舉例來說,您可能有一個覆寫檔案用於調整叢集以供實際工作環境使用,另一個則用於建立測試叢集。然後在原始碼控管系統中維護這些檔案。
例如:
helm upgrade test-1-env apigee-env/ \ --namespace APIGEE_NAMESPACE \ --atomic \ --set env=test-1-env \ -f test-1-env-overrides.yaml
刪除混合專屬的執行階段層元件
執行階段平面元件包括 synchronizer
、mart
、runtime
、cassandra
和 udca
。
如要從叢集中刪除混合專屬的執行階段平面元件,請使用 helm delete
指令。請務必指定用於安裝執行階段元件的相同覆寫檔案。
例如:
您必須使用 Helm 逐一刪除每個元件。舉例來說,如要刪除 cassandra
元件,請使用下列指令:
helm -n APIGEE_NAMESPACE delete datastore
在上述範例中,資料儲存庫元件是以「datastore」名稱安裝。如果您使用其他名稱安裝,則必須提供該名稱才能刪除元件。舉例來說,如果您使用 helm install my-cassandra-storage apigee-datastore/
安裝 apigee-datastore
圖表,您可以使用下列指令刪除該模型:
helm delete -n apigee my-cassandra-storage
如要重新建立特定元件 (本例為環境群組):
helm upgrade ENV_GROUP apigee-virtualhost/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE.yaml