管理執行階段層元件

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

關於覆寫檔案

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

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

變更設定

如要對混合式執行階段平面元件進行設定變更,請編輯覆寫檔案,並使用 Helm 升級與元件相對應的圖表。下表顯示哪些圖表對應至哪些 Apigee 混合型元件:

範圍元件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

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

  1. 開啟 OVERRIDES.yaml 檔案。請務必使用用於將混合式執行階段安裝至叢集的覆寫檔案。
  2. 找出檔案中的 runtime 元素。例如:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. 請參閱:

  4. 視需要變更備用資源數量屬性。例如:
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 20
    ...
  5. 升級環境。
  6. 您一次只能安裝一個環境。使用 --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
    
    • ENV_RELEASE_NAME 是先前用來安裝 apigee-env 圖表的名稱。在 hybrid v1.10 中,通常是 apigee-env-ENV_NAME。在 Hybrid 1.11 以上版本中,通常是 ENV_NAME
    • ENV_NAME 是您要升級的環境名稱。
    • OVERRIDES_FILE 是 v.1.15.0 的新覆寫檔案
  7. 升級圖表:
  8. helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    
  9. 檢查相應環境的狀態,確認環境已啟用並執行:
  10. 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.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.15.0"
    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 Kubernetes Pod。您可以為設定屬性參考資料中列出的下列屬性建立自訂註解:

如要新增自訂註解,請為相應元件在 OVERRIDES.yaml 檔案中新增節。

以下範例說明如何在 runtime 容器中指定註解:

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

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

執行階段平面元件包括 synchronizermartruntimecassandraudca

如要從叢集中刪除混合專屬的執行階段平面元件,請使用 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