使用 Istioctl 命令行工具

您可以通过检查各个组件的日志 或者通过自检机制来了解其功能。 如果还不够的话,以下步骤将会告诉您如何深入了解。

istioctl 是一个允许服务管理者调试和诊断服务网格应用的命令行配置工具。 Istio 项目还提供了两个在 Bash 和 Zsh 环境下用于自动补全 istioctl 命令的脚本。 这两个脚本均支持当前可用的 istioctl 命令。

开始之前

我们建议您使用与 Istio 控制平面相匹配的 istioctl 版本。 使用相匹配的版本有助于避免产生意外的问题。

安装 istioctl

curl 安装 istioctl 二进制文件:

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

    $ curl -sL https://istio.io/downloadIstioctl | sh -
    
  2. 在 macOS 或 Linux 系统上,将 istioctl 添加到您的环境变量 PATH 中:

    $ export PATH=$HOME/.istioctl/bin:$PATH
    
  3. 使用 bash 或 Zsh 控制台时,可以选择启用命令自动补全选项

网格概览

您可以使用 proxy-statusps 命令概览您的网格:

$ istioctl proxy-status

如果输出列表中缺少某个代理则意味着它当前未连接到 Pilot 实例,所以它无法接收到任何配置。 此外,如果它被标记为 stale,则意味着存在网络问题或者需要扩展 Pilot。

代理配置

istioctl 允许您使用 proxy-config 或者 pc 命令检索代理的配置信息。

例如检索特定 Pod 中 Envoy 实例的集群配置的信息:

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

检索特定 Pod 中 Envoy 实例的 bootstrap 配置的信息:

$ 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 实例的 endpoint 配置的信息:

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

有关上述命令描述的更多信息,请参考调试 Envoy 和 Pilot.

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

zsh-completions 包被安装到您的 macOS 系统以后,添加下行内容到您的 ~/.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 '$HOMEBREW_PREFIX/share/zsh'

开启自动补全

根据您选择的 shell,按照以下步骤在您的系统开启 istioctl 命令补全:

安装 bash 自动补全文件。

如果您使用 bash,istioctl 自动补全的文件位于 tools 目录。 通过复制 istioctl.bash 文件到您的 home 目录, 然后添加下行内容到您的 .bashrc 文件执行 istioctl tab 补全文件:

$ source ~/istioctl.bash

使用自动补全

如果 istioctl 补全文件已经正确安装,在您输入 istioctl 命令时通过按 Tab 键,它会返回一组推荐命令供您选择:

$ istioctl proxy-<TAB>
proxy-config proxy-status
这些信息有用吗?
您是否有更多建议和改进意见?

感谢您的反馈!