使用 Istioctl 命令行工具
您可以透過檢查個別元件的記錄或透過自省來深入了解個別元件正在執行的動作。如果這還不夠,以下步驟說明如何深入了解內部運作。
istioctl
工具是一個配置命令列工具,讓服務運營商能夠除錯和診斷他們的 Istio 服務網格部署。Istio 專案還包含了兩個有用的 istioctl
腳本,可以為 Bash 和 Zsh 啟用自動補全功能。這兩個腳本都支援目前可用的 istioctl
命令。
開始之前
我們建議您使用與 Istio 控制平面版本相同的 istioctl
版本。使用匹配的版本有助於避免無法預見的問題。
安裝 istioctl
使用 curl
安裝 istioctl
二進制檔案
使用以下命令下載最新版本
$ curl -sL https://istio.dev.org.tw/downloadIstioctl | sh -
在 macOS 或 Linux 系統上,將
istioctl
客戶端添加到您的路徑中$ export PATH=$HOME/.istioctl/bin:$PATH
在 Bash 或 Zsh 控制台工作時,您可以選擇啟用自動補全選項。
取得網格的概觀
您可以使用 proxy-status
或 ps
命令獲取網格的概觀
$ istioctl proxy-status
如果輸出列表中缺少代理,表示該代理目前未連接到 istiod 實例,因此它不會接收任何配置。此外,如果它被標記為過時,則很可能表示存在網路問題或 istiod 需要擴展。
取得代理設定
istioctl
允許您使用 proxy-config
或 pc
命令檢索有關代理配置的資訊。
例如,要檢索特定 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"
如果您使用的是基於 Linux 的作業系統,可以使用 apt-get install bash-completion
命令(對於基於 Debian 的 Linux 發行版)或 yum install bash-completion
(對於基於 RPM 的 Linux 發行版,這兩種是最常見的情況)來安裝 Bash 補全套件。
一旦在您的 Linux 系統上安裝了 bash-completion
套件,請將以下行添加到您的 ~/.bash_profile
檔案中
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
啟用自動完成
若要在您的系統上啟用 istioctl
補全功能,請按照您偏好的 Shell 的步驟操作
安裝 bash 自動補全檔案
如果您使用的是 bash,則 istioctl
自動補全檔案位於 tools
目錄中。若要使用它,請將 istioctl.bash
檔案複製到您的主目錄,然後新增以下行以從您的 .bashrc
檔案中取得 istioctl
tab 補全檔案的來源
$ source ~/istioctl.bash
安裝 Zsh 自動補全檔案
對於 Zsh 使用者,istioctl
自動補全檔案位於 tools
目錄中。將 _istioctl
檔案複製到您的主目錄或您選擇的任何目錄(更新以下程式碼片段中的目錄),並在您的 .zshrc
檔案中取得 istioctl
自動補全檔案的來源,如下所示
source ~/_istioctl
您也可以將 _istioctl
檔案新增至 fpath
變數中列出的目錄。若要達成此目的,請將 _istioctl
檔案放置在 fpath
中現有的目錄中,或建立新目錄並將其新增至您 ~/.zshrc
檔案中的 fpath
變數。
使用自動完成
如果已正確安裝 istioctl
補全檔案,請在撰寫 istioctl
命令時按下 Tab 鍵,它應該會傳回一組命令建議供您選擇
$ istioctl proxy-<TAB>
proxy-config proxy-status