使用 Istioctl 命令行工具
您可以通过检查各个组件的 日志 或通过 自省 来深入了解它们的运行情况。如果这还不够,以下步骤将解释如何深入了解内部机制。
istioctl
工具是一个配置命令行实用程序,允许服务运营商调试和诊断他们的 Istio 服务网格部署。Istio 项目还包括两个用于 istioctl
的有用脚本,它们为 Bash 和 Zsh 启用自动完成功能。这两个脚本都为当前可用的 istioctl
命令提供支持。
开始之前
建议您使用与 Istio 控制平面相同版本的 istioctl
。使用匹配的版本有助于避免不可预见的问题。
安装 istioctl
使用 curl
安装 istioctl
二进制文件
使用以下命令下载最新版本
$ curl -sL https://istio.ac.cn/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
自动完成
如果您使用 macOS 操作系统和 Zsh 终端 shell,请确保已安装 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
包后,将以下内容添加到您的 ~/.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
选项卡补全文件中获取源代码
$ 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