本主題說明如何設定及管理 Apigee Hybrid 執行階段平面元件。如需可設定的執行階段平面元件清單,請參閱「執行階段服務設定總覽」。
關於覆寫檔案
首次在叢集中安裝混合式執行階段時,您必須建立設定覆寫檔案。您可視需要使用這個檔案覆寫預設設定值、設定環境、參照 TLS 憑證和服務帳戶金鑰、將 Kubernetes 節點集區指派給特定混合式元件等。
混合式 安裝步驟會逐步說明如何建立覆寫檔案,並將設定套用至叢集。如要變更設定,請修改您建立的覆寫檔案,然後重新套用。
變更設定
如要變更混合式執行階段平面元件的設定,請編輯覆寫檔案,然後使用 apigeectl 套用變更。
舉例來說,如要變更訊息處理器的副本數量,請按照下列步驟操作:
- 開啟 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: 4 ... - 使用
apigeectl將變更套用至叢集:apigeectl apply -f ./OVERRIDES.yaml --org --env ENV_NAME
您可以修改哪些設定屬性?
如需可設定屬性的完整清單,請參閱「設定屬性參考資料」。 參考資料只會列出可修改的屬性;如果您嘗試修改參考資料中沒有的屬性,系統會忽略該變更。
如何使用設定參照
設定屬性參照使用點記號表示法來描述設定元素,其中第一個項目是頂層元素名稱,後面接著屬性和子項屬性。例如:
authz.image.pullPolicy
在覆寫檔案中,屬性會以正確的 YAML 格式設定。以上述範例來說,頂層 authz 元素會向左縮排,子元素屬性則會縮排至該元素下方。此外,YAML 規定每個元素和子元素結尾都必須加上半形冒號。
舉例來說,如要將 authz.image.pullPolicy 屬性設為 Always,請在覆寫檔案中找出這個 YAML 節,然後設定如下:
authz: image: pullPolicy: Always
再舉一例,屬性 cassandra.auth.admin.password (如設定屬性參考資料中所列) 用於設定 Cassandra 管理員密碼。如要變更,請在覆寫檔案中找出下列 YAML,並依下列方式設定:
cassandra: auth: admin: password: abc123
請注意,設定屬性參考資料說明瞭您可以在混合式執行階段平面元件上設定的所有屬性。請按照上述模式修改覆寫檔案中的這些元素,然後再將變更套用至叢集。
使用預先定義的範例會覆寫檔案
首次安裝混合式執行階段時,Apigee 建議使用預先設定的範例覆寫檔案。這些範例提供特定安裝情境的完整設定屬性集,例如設定正式或測試安裝。您只需要為屬性提供適當的值,並將覆寫檔案套用至叢集。詳情請參閱「步驟 7:設定 Hybrid 執行階段」。
關於設定預設值
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.3.6"
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_ROOT_DIR/examples 包含下列範例:
| 範例覆寫檔案 | 說明 |
|---|---|
overrides-small.yaml |
這個範例非常適合快速入門。這項工具會使用建議的最小足跡,啟動混合式執行階段元件。這個範例設定盡可能採用預設設定和值。所有副本數量下限都設為 1。 |
overrides-medium.yaml |
這個範例是測試和品質保證環境的良好起點。個別元件已獲得更高層級的資源,可處理額外流量。Cassandra 使用 SSD 磁碟來提升效能。在這個環境中,建議使用者在不同節點上安裝有狀態和無狀態元件。請參閱 設定專用節點。 |
overrides-large.yaml |
這個範例是前置製作和製作等高效能環境的良好起點。範例包含設定加密金鑰、密碼等屬性。個別元件至少有兩個副本。 |
自訂註解
註解是鍵/值對應,用於將中繼資料附加至 Apigee Hybrid Kubernetes Pod。您可以為設定屬性參考資料中列出的下列屬性建立自訂註解:
如要新增自訂註解,請在相應元件的 OVERRIDES.yaml 檔案中新增節。
以下範例說明如何在 runtime Pod 中指定註解:
runtime: annotations: businessunit: "bu1"
測試合併後的設定
您可以使用 --dry-run 標記和 apigeectl 測試合併的設定檔,而不必實際套用至叢集。這個選項可顯示將套用至叢集的內容,因此有助於偵錯安裝問題。此外,建議您測試設定並儲存在來源控制項中,以便參考叢集中安裝及設定的資源。
在 Apigee Hybrid 中,--dry-run 旗標的語法取決於您執行的 kubectl 版本。使用下列指令檢查 kubectl 版本:
kubectl version
kubectl 1.17 版和舊版:
APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES.yaml --dry-run=true
kubectl 1.18 以上版本:
APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES.yaml --dry-run=client
詳情請參閱「apigeectl」。
視需要建立多個覆寫檔案
您可以視需要建立多個覆寫檔案,每個檔案都符合特定需求。舉例來說,您可能有一個覆寫檔案用於調整叢集以供正式環境使用,另一個則用於建立測試叢集。然後在原始碼控管系統中維護這些檔案。
apigeectl apply -f ./test_env_override.yaml
詳情請參閱「apigeectl」。
刪除混合專屬的執行階段層元件
如要從叢集刪除混合專屬的執行階段平面元件,請使用 apigeectl delete 指令。這些元件包括 synchronizer、mart、runtime、cassandra 和 udca。請務必指定用於安裝執行階段元件的相同覆寫檔案:
例如:
apigeectl delete -f ./OVERRIDES.yaml
您可以使用 apigeectl apply 指令重新建立特定元件或多個元件:
apigeectl apply --org --env ENV_NAME -f ./OVERRIDES.yaml
詳情請參閱「apigeectl」。
刪除特定元件
如要只刪除特定元件,請搭配使用 -c 選項和 apigeectl delete。請務必指定您用來安裝執行階段元件的相同覆寫檔案。
舉例來說,如要刪除 synchronizer 元件,請使用下列指令:
apigeectl delete --org --env ENV_NAME -f ./OVERRIDES.yaml
接著,您可以使用 apigeectl apply 指令重新建立元件:
apigeectl apply --org --env ENV_NAME -f ./OVERRIDES.yaml
詳情請參閱「apigeectl」。
刪除所有元件
如要刪除所有叢集元件混合式,包括使用 apigeectl init 指令建立的元件,請使用帶有 --all 標記的 apigeectl delete 指令。請務必指定用於安裝執行階段元件的相同覆寫檔案:
例如:
apigeectl delete -f ./OVERRIDES.yaml --all
詳情請參閱「apigeectl」。