本主題說明如何設定及管理 Apigee Hybrid 執行階段平面元件。如需可設定的執行階段平面元件清單,請參閱「執行階段服務設定總覽」。
關於覆寫檔案
首次在叢集中安裝混合式執行階段時,您必須建立設定覆寫檔案。您可視需要使用這個檔案覆寫預設設定值、設定環境、參照 TLS 憑證和服務帳戶金鑰、將 Kubernetes 節點集區指派給特定混合式元件等。
混合式 安裝步驟會逐步說明如何建立覆寫檔案,並將設定套用至叢集。如要變更設定,請修改您建立的覆寫檔案,然後重新套用。
變更設定
如要變更混合式執行階段平面元件的設定,請編輯覆寫檔案,然後視管理工具而定,使用 Helm 或 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: 20 - 使用下列指令套用變更:
Helm
一次只能安裝一個環境。使用
--set env=ENV_NAME 指定環境。- 請先執行模擬測試:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run
- ENV_RELEASE_NAME 是您先前安裝
apigee-env圖表時使用的名稱。在 Hybrid 1.10 中,這通常是apigee-env-ENV_NAME。在 Hybrid 1.11 以上版本中,通常是 ENV_NAME。 - ENV_NAME 是您要升級的環境名稱。
- OVERRIDES_FILE 是覆寫檔案的路徑。1.3.6
- ENV_RELEASE_NAME 是您先前安裝
- 升級圖表:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
apigeectl使用
apigeectl將變更套用至叢集:apigeectl apply -f OVERRIDES.yaml --org --env apigee-env
- 請先執行模擬測試:
- 請檢查相應環境的狀態,確認該環境已啟動並執行:
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.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 標記測試合併的設定檔,而不必實際套用至叢集。這個選項可顯示將套用至叢集的內容,因此有助於偵錯安裝問題。此外,建議您測試設定並儲存在來源控制項中,以便參考叢集中安裝及設定的資源。
Helm
kubectl apply -k apigee-operator/etc/crds/default/
helm upgrade operator apigee-operator/ \ --install \ --namespace apigee-system \ --atomic \ -f OVERRIDES_FILE.yaml \ --dry-run
helm upgrade ingress-manager apigee-ingress-manager/ / --install \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml \ --dry-run
apigeectl
APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES.yaml --dry-run=client
詳情請參閱「apigeectl」。
視需要建立多個覆寫檔案
您可以視需要建立多個覆寫檔案,每個檔案都符合特定需求。舉例來說,您可能有一個覆寫檔案用於調整叢集以供正式環境使用,另一個則用於建立測試叢集。然後在原始碼控管系統中維護這些檔案。
例如:
Helm
helm upgrade test-1-env apigee-env/ \ --namespace apigee \ --atomic \ --set env=test-1-env \ -f test-1-env-overrides.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f test-1-env-overrides.yaml --env test-1-env
刪除混合專屬的執行階段層元件
執行階段平面元件包括 synchronizer、mart、runtime、cassandra 和 udca。
如要從叢集中刪除混合專屬的執行階段平面元件,請使用 helm delete 或 apigeectl delete 指令。請務必指定與安裝執行階段元件時使用的覆寫檔案相同。
例如:
Helm
您必須使用 Helm 逐一刪除每個元件。舉例來說,如要刪除cassandra 元件,請使用下列指令:helm -n apigee delete datastore
在上述範例中,資料儲存庫元件是以「datastore」名稱安裝。如果您使用其他名稱安裝,則必須提供該名稱才能刪除元件。舉例來說,如果您使用 helm install my-cassandra-storage apigee-datastore/ 安裝 apigee-datastore 圖表,您可以使用下列指令刪除該模型:
helm delete -n apigee my-cassandra-storage
apigeectl
使用 apigeectl 時,您可以一次刪除所有執行階段元件,也可以限制範圍,一次刪除一個元件。舉例來說,如要一次刪除所有元件,請按照下列步驟操作:
$APIGEECTL_HOME/apigeectl delete -f OVERRIDES_FILE.yaml
如要刪除 cassandra 元件:
$APIGEECTL_HOME/apigeectl delete -f OVERRIDES_FILE.yaml --datastore
如要重新建立特定元件 (本例為環境群組):
Helm
helm upgrade ENV_GROUP apigee-virtualhost/ \ --install \ --namespace apigee \ --atomic \ --set envgroup=ENV_GROUP_NAME \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --env ENV_NAME --settings virtualhosts