管理執行階段層元件

本主題說明如何設定及管理 Apigee Hybrid 執行階段平面元件。如要查看可設定的執行階段平面元件清單,請參閱「執行階段服務設定總覽」。

關於覆寫檔案

第一次將混合式執行階段安裝到叢集時,您必須建立設定覆寫檔案。您可以使用這個檔案視需要覆寫預設設定值、設定環境、參照 TLS 憑證和服務帳戶金鑰,以及將 Kubernetes 節點叢集指派給特定混合元件等等。

混合式安裝步驟會逐步引導您建立覆寫檔案,並將設定套用至叢集。如果之後想變更設定,請修改您建立的覆寫檔案,然後重新套用。

變更設定

如要對混合式執行階段平面元件進行設定變更,請編輯覆寫檔案,並使用 apigeectl 套用變更。

舉例來說,如要變更訊息處理器的複本數量,請按照下列步驟操作:

  1. 開啟 OVERRIDES.yaml 檔案。請務必使用用於將混合式執行階段安裝至叢集的覆寫檔案。
  2. 找出檔案中的 runtime 元素。例如:
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. 視需要變更備用資源數量屬性。例如:
    ...
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 4
    ...
  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.yamlmart 元件的預設設定。請注意,部分值有預設值,但 sslCertPathsslKeyPath 則沒有。您必須在覆寫檔案中提供這些缺少的值,詳情請參閱安裝步驟。如要變更任何預設值,請確認這些值可供編輯,方法是檢查設定資源參照

...
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: |
...

如果您想修改元件的預設值,但該元件尚未在覆寫檔案中,可以將其 YAML 從 values.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 容器中指定註解:

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

刪除 Hybrid 專屬的執行階段層元件

如要從叢集中刪除混合專屬的執行階段平面元件,請使用 apigeectl delete 指令。這些元件包括 synchronizermartruntimecassandraudca。請務必指定與用於安裝執行階段元件的覆寫檔案相同的檔案:

例如:

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 指令建立的元件,請使用 apigeectl delete 指令搭配 --all 標記。請務必指定與用於安裝執行階段元件的覆寫檔案相同的覆寫檔案:

例如:

apigeectl delete -f ./OVERRIDES.yaml --all

詳情請參閱 apigeectl