apigeectectl

apigeectl 是指令列介面 (CLI),可用於在 Kubernetes 叢集中安裝及管理 Apigee hybrid。如要瞭解如何下載及安裝 apigeectl,請參閱「下載及安裝 apigeectl」。

套用 apigeectl 的範圍

您可以使用 apigeectl 標記控制指令套用設定變更的範圍。如需 Apigee Hybrid 執行階段內範圍的總覽,請參閱「執行階段服務設定總覽」。

範圍元件apigeectl 標記
儲存空間 Cassandra --datastore
記憶體儲存空間 Redis --redis
環境 執行階段
Synchronizer
UDCA
--all-envs
--env
機構 Apigee Connect 代理人
MART
Watcher
--org
報告 記錄器
指標
--telemetry

apigeectl 語法

apigeectl [command] [flags]

其中:

  • command:指定要執行的作業。如需完整的指令清單,請參閱 apigeectl 指令

  • flags:指定指令參數。如需完整的旗標清單,請參閱 apigeectl 旗標

apigeectl 指令

下表列出 apigeectl 指令:

指令 說明
apply

將 Apigee hybrid 執行階段元件的設定套用至 Kubernetes 叢集。

apigeectl apply 沒有標記的話,系統會將變更套用至叢集中的所有元件。

apigeectl 標記 --all-envs--datastore--dry-run--env-f--file-override-config--help--org--print-yaml--redis--settings virtualhosts--telemetry--verbose

check‑ready

檢查混合元件 Pod 的狀態。當所有元件 Pod 都就緒時,系統會輸出「All containers ready」(所有容器就緒) 訊息。針對自動化指令碼,請注意,當所有容器都就緒時,指令會以 0 的狀態結束。如果至少有一個 Pod 未就緒,指令會以 1 的狀態結束。

apigeectl 標記 -f--file-override-config--help--verbose

delete

從叢集中刪除混合式元件。使用 --all 旗標移除所有元件。如果省略 --all,系統只會移除 Apigee 專屬元件 (不會刪除使用 apigeectl init 安裝的元件)。Apigee 專屬元件是指透過 apply 指令安裝的元件。

apigeectl delete 不含任何選用標記,會將 delete 指令套用至叢集中部署的所有元件。

apigeectl diagnostic delete -f OVERRIDES_FILE 會刪除 apigeectl diagnostic 建立的 apigee-diagnostic 命名空間。apigeectl diagnostic delete 必須搭配 -f / --file-override-config 標記

apigeectl 標記 --all--all-envs--datastore--env-f--file-override-config--help--org--redis--telemetry--verbose

diagnostic

叫用 Diagnostic 收集器,可視需要擷取 Apigee 混合式執行個體的 Kubernetes 元件診斷資料,並將這些資料儲存在 Google Cloud Storage 值區中。

診斷收集器需要具備名稱的 Google Cloud Storage 值區、具有 Storage 管理員角色的服務帳戶,以及新增至 overrides 檔案的 diagnostic: 節。請參閱:

當您叫用診斷收集器時,它會建立「apigee-diagnostic」Kubernetes 命名空間。您必須先使用 apigeectl diagnostic delete 刪除這個項目,才能再次叫用診斷收集器。

叫用診斷收集器:

apigeectl diagnostic -f OVERRIDES_FILE

刪除診斷收集器:

apigeectl diagnostic delete -f OVERRIDES_FILE

apigeectl 標記 --file-override-config

encode

傳回指定機構的所有 ApigeeDeployment 或指定機構內的指定環境,以編碼名稱列出清單。經過編碼的名稱包含元件名稱,以及機構的雜湊名稱 (如果使用 --env 標記) 和環境的雜湊名稱。Apigee hybrid 會建立機構和環境的雜湊名稱,以免命名空間發生衝突。

您必須使用 --org org-name,或同時使用 --org org-name--env env-name 旗標,再加上 encode。例如:

./apigeectl encode --org hybrid-example
List of ApigeeDeployments are:
  apigee-connect-agent-hybrid-example-6a82f8a
  apigee-mart-hybrid-example-6a82f8a
  apigee-watcher-hybrid-example-6a82f8a
./apigeectl encode --org hybrid-example --env example-env
List of ApigeeDeployments are:
  apigee-runtime-hybrid-example-example-env-9e87e2d
  apigee-synchronizer-hybrid-example-example-env-9e87e2d
  apigee-udca-hybrid-example-example-env-9e87e2d

apigeectl 標記 --env--org

help 列印線上說明。
init

在 apigee-system 命名空間中安裝 Apigee 操作員和 CRD。

請先安裝或升級後再執行 apigeectl init,然後再執行 apigeectl apply

apigeectl 標記 -f--file-override-config--help--verbose

version 列印 CLI 版本資訊。

apigeectl 標記 --help

apigeectl 標記

下表列出 apigeectl 旗標:

旗標 說明
--all delete 專用:刪除叢集中的整個 Apigee hybrid 安裝作業,但會保留 ASM (Istio) 和 cert-manager。
--all-envs

apigeectl 指令套用至覆寫設定檔中指定的機構組織下的所有環境。

--datastore

將設定套用至資料儲存庫範圍 (Cassandra)。

‑‑dry‑run 執行指定指令,但不變更叢集。搭配 ‑‑print-yaml 使用,將算繪物件規格輸出至檔案。

‑‑dry‑run 必須搭配下列兩個值之一使用,具體取決於您執行的 kubectl 版本。使用 gcloud version 檢查 kubectl 版本:

  • kubectl 1.17.x 以下版本:‑‑dry‑run=true
  • kubectl 1.18.x 以上版本:‑‑dry‑run=client
--env env-name

將設定套用至指定的環境。這個標記會將設定套用至環境範圍元件 apigee-runtime、apigee-synchronizer 和 apigee-udca。

--env 必須與 --org 旗標搭配使用。例如:

apigeectl apply --org hybrid-example --env example-env \
      -f overrides/overrides.yaml
‑f
‑‑file‑override‑config
指定包含混合式部署自訂設定屬性的 YAML 檔案。預設值為 ./overrides.yamlapplycheck-readydeleteinit 指令需要覆寫檔案。

您必須使用這個標記指定完整路徑。詳情請參閱「管理執行階段平面元件」。

-h
--help
顯示指令的說明。
--org

將設定套用至指定的機構。這個旗標會將設定套用至機構範圍元件 apigee-connect-agent、apigye-mart 和 apigee-watcher。

--print‑yaml 將設定範本輸出內容列印到標準輸出。如需使用此標記的範例,請參閱「將設定列印到檔案」。
--redis

將設定套用至記憶體內資料儲存範圍 (Redis)。

--restore

將 Cassandra 還原至先前儲存的快照,該快照是由 overrides.yaml 檔案的 restore 設定中 snapshotTimestamp 屬性指定。備份會根據 overrides.yaml 檔案中的 backup 設定,從 Cloud Storage 值區或遠端伺服器還原。詳情請參閱「從備份還原區域」。

-s
‑‑settings virtualhosts

指定指令適用的設定。目前,這項標記僅支援 virtualhosts 設定,這是 runtime 元件的一部分。如果您只變更 virtualhosts 屬性,請使用這個旗標。

舉例來說,如果您在覆寫檔案中變更 virtualhosts 設定,請使用以下指令將其套用至叢集:

apigeectl apply -f my-overrides.yaml --settings virtualhosts \
    --org example-org --env example-env
--telemetry

為 apigee-logger 和 apigee-metrics 等遙測元件套用設定。

--verbose

將詳細記錄列印至標準錯誤。

示例

初始化叢集設定

請使用 init,將必要元件設定套用至叢集。您必須先執行 init 指令,再執行 apply

apigeectl init -f my_overrides.yaml

套用叢集設定

如要將混合型設定套用至 Kubernetes 叢集,請使用 apply 指令。您第一次執行 apply 時,所有混合式執行階段元件都會在叢集中建立。如果您變更設定,請重新執行 apply,只套用變更,或使用標記只將變更套用至特定範圍。

以下範例將混合式執行階段平面元件的設定套用至叢集:

apigeectl apply -f my_overrides.yaml

為單一元件套用設定

如要將 apply 指令限制在特定元件,請使用 apigeectl 標記中所述的標記。

以下範例只會套用 Cassandra 元件的設定:

apigeectl apply --datastore -f my_overrides.yaml

將設定列印到檔案

如果您要對安裝問題進行偵錯,建議您將整個叢集設定列印到檔案中,以便檢查設定。--print-yaml 標記會將混合型設定列印到標準輸出,而 --dry-run 標記則可讓指令在未對叢集進行任何變更的情況下執行。

apigeectl apply -f my_overrides.yaml --dry-run=client --print-yaml > apigee-hybrid.yaml

檢查 Pod 狀態

以下範例會檢查部署至叢集的 Pod 狀態:

apigeectl check-ready -f overrides/overrides.yaml
All containers ready in namespace 'my-namespace'

從叢集中刪除混合型

以下範例只會刪除 Kubernetes 叢集的混合式執行階段元件。如要刪除所有資料,請使用 --all 標記。

apigeectl delete -f my_overrides.yaml