使用 Istioctl 命令行工具

您可以透過檢查個別元件的記錄或透過自省來深入了解個別元件正在執行的動作。如果這還不夠,以下步驟說明如何深入了解內部運作。

istioctl 工具是一個配置命令列工具,讓服務運營商能夠除錯和診斷他們的 Istio 服務網格部署。Istio 專案還包含了兩個有用的 istioctl 腳本,可以為 Bash 和 Zsh 啟用自動補全功能。這兩個腳本都支援目前可用的 istioctl 命令。

開始之前

我們建議您使用與 Istio 控制平面版本相同的 istioctl 版本。使用匹配的版本有助於避免無法預見的問題。

安裝 istioctl

使用 curl 安裝 istioctl 二進制檔案

  1. 使用以下命令下載最新版本

    $ curl -sL https://istio.dev.org.tw/downloadIstioctl | sh -
    
  2. 在 macOS 或 Linux 系統上,將 istioctl 客戶端添加到您的路徑中

    $ export PATH=$HOME/.istioctl/bin:$PATH
    
  3. 在 Bash 或 Zsh 控制台工作時,您可以選擇啟用自動補全選項

取得網格的概觀

您可以使用 proxy-statusps 命令獲取網格的概觀

$ istioctl proxy-status

如果輸出列表中缺少代理,表示該代理目前未連接到 istiod 實例,因此它不會接收任何配置。此外,如果它被標記為過時,則很可能表示存在網路問題或 istiod 需要擴展。

取得代理設定

istioctl 允許您使用 proxy-configpc 命令檢索有關代理配置的資訊。

例如,要檢索特定 Pod 中 Envoy 實例的叢集配置資訊

$ istioctl proxy-config cluster <pod-name> [flags]

要檢索特定 Pod 中 Envoy 實例的啟動配置資訊

$ istioctl proxy-config bootstrap <pod-name> [flags]

要檢索特定 Pod 中 Envoy 實例的監聽器配置資訊

$ istioctl proxy-config listener <pod-name> [flags]

要檢索特定 Pod 中 Envoy 實例的路由配置資訊

$ istioctl proxy-config route <pod-name> [flags]

要檢索特定 Pod 中 Envoy 實例的端點配置資訊

$ istioctl proxy-config endpoints <pod-name> [flags]

請參閱除錯 Envoy 和 Istiod,以獲取有關解釋此資訊的更多建議。

istioctl 自動完成

如果您在使用具有 Zsh 終端 Shell 的 macOS 作業系統,請確保已安裝 zsh-completions 套件。對於 macOS 的 brew 套件管理器,您可以使用以下命令檢查是否已安裝 zsh-completions 套件

$ brew list zsh-completions
/usr/local/Cellar/zsh-completions/0.34.0/share/zsh-completions/ (147 files)

如果您收到 Error: No such keg: /usr/local/Cellar/zsh-completion,請繼續使用以下命令安裝 zsh-completions 套件

$ brew install zsh-completions

一旦在您的 macOS 系統上安裝了 zsh-completions package,請將以下內容添加到您的 ~/.zshrc 檔案中

if type brew &>/dev/null; then
  FPATH=$(brew --prefix)/share/zsh-completions:$FPATH

  autoload -Uz compinit
  compinit
fi

您可能還需要強制重建 zcompdump

$ rm -f ~/.zcompdump; compinit

此外,如果您在嘗試載入這些補全時收到 Zsh compinit: insecure directories 警告,您可能需要執行此操作

$ chmod -R go-w "$(brew --prefix)/share"

啟用自動完成

若要在您的系統上啟用 istioctl 補全功能,請按照您偏好的 Shell 的步驟操作

安裝 bash 自動補全檔案

如果您使用的是 bash,則 istioctl 自動補全檔案位於 tools 目錄中。若要使用它,請將 istioctl.bash 檔案複製到您的主目錄,然後新增以下行以從您的 .bashrc 檔案中取得 istioctl tab 補全檔案的來源

$ source ~/istioctl.bash

使用自動完成

如果已正確安裝 istioctl 補全檔案,請在撰寫 istioctl 命令時按下 Tab 鍵,它應該會傳回一組命令建議供您選擇

$ istioctl proxy-<TAB>
proxy-config proxy-status
此資訊是否有用?
您是否有任何改進建議?

感謝您的回饋!