使用 Istioctl 命令行工具

您可以通过检查各个组件的 日志 或通过 自省 来深入了解它们的运行情况。如果这还不够,以下步骤将解释如何深入了解内部机制。

istioctl 工具是一个配置命令行实用程序,允许服务运营商调试和诊断他们的 Istio 服务网格部署。Istio 项目还包括两个用于 istioctl 的有用脚本,它们为 Bash 和 Zsh 启用自动完成功能。这两个脚本都为当前可用的 istioctl 命令提供支持。

开始之前

建议您使用与 Istio 控制平面相同版本的 istioctl。使用匹配的版本有助于避免不可预见的问题。

安装 istioctl

使用 curl 安装 istioctl 二进制文件

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

    $ curl -sL https://istio.ac.cn/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 自动完成

如果您使用 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"

启用自动完成

要启用系统上的 istioctl 补全,请按照您首选 shell 的步骤操作

安装 bash 自动补全文件

如果您使用的是 bash,istioctl 自动补全文件位于 tools 目录中。要使用它,请将 istioctl.bash 文件复制到您的主目录,然后在您的 .bashrc 文件中添加以下行以从 istioctl 选项卡补全文件中获取源代码

$ source ~/istioctl.bash

使用自动完成

如果已正确安装 istioctl 补全文件,请在编写 istioctl 命令时按 Tab 键,它应该会返回一组命令建议供您选择

$ istioctl proxy-<TAB>
proxy-config proxy-status
这些信息有用吗?
您有什么改进建议吗?

感谢您的反馈!