Istioctlコマンドラインツールの使用
個々のコンポーネントの動作については、ログを調べたり、イントロスペクションで内部を覗いたりすることで、洞察を得ることができます。それでも不十分な場合は、以下の手順で詳細な調査方法を説明します。
istioctl
ツールは、サービスオペレーターがIstioサービスメッシュデプロイメントをデバッグおよび診断できる設定コマンドラインユーティリティです。Istioプロジェクトには、BashとZshの自動補完を有効にするistioctl
用の2つの便利なスクリプトも含まれています。これらのスクリプトはどちらも、現在利用可能なistioctl
コマンドをサポートしています。
始める前に
Istioコントロールプレーンと同じバージョンのistioctl
を使用することをお勧めします。バージョンを一致させることで、予期せぬ問題を回避できます。
istioctlのインストール
curl
を使用してistioctl
バイナリをインストールする
次のコマンドで最新リリースをダウンロードします
$ curl -sL https://istio.dokyumento.jp/downloadIstioctl | sh -
macOSまたはLinuxシステムで、
istioctl
クライアントをパスに追加します$ export PATH=$HOME/.istioctl/bin:$PATH
bashまたはZshコンソールで作業する場合、オプションで自動補完オプションを有効にすることができます。
メッシュの概要を取得する
proxy-status
またはps
コマンドを使用して、メッシュの概要を取得できます
$ istioctl proxy-status
出力リストにプロキシが存在しない場合、そのプロキシは現在istiodインスタンスに接続されていないため、設定を受信しません。さらに、staleとマークされている場合は、ネットワークの問題が発生しているか、istiodのスケールアップが必要である可能性があります。
プロキシ設定を取得する
istioctl
を使用すると、proxy-config
または pc
コマンドを使用してプロキシ設定に関する情報を取得できます。
たとえば、特定のポッド内のEnvoyインスタンスのクラスタ設定に関する情報を取得するには、次のコマンドを実行します。
$ istioctl proxy-config cluster <pod-name> [flags]
特定のポッド内のEnvoyインスタンスのブートストラップ設定に関する情報を取得するには、次のコマンドを実行します。
$ istioctl proxy-config bootstrap <pod-name> [flags]
特定のポッド内のEnvoyインスタンスのリスナー設定に関する情報を取得するには、次のコマンドを実行します。
$ istioctl proxy-config listener <pod-name> [flags]
特定のポッド内のEnvoyインスタンスのルート設定に関する情報を取得するには、次のコマンドを実行します。
$ istioctl proxy-config route <pod-name> [flags]
特定のポッド内のEnvoyインスタンスのエンドポイント設定に関する情報を取得するには、次のコマンドを実行します。
$ istioctl proxy-config endpoints <pod-name> [flags]
この情報の解釈に関する詳細は、EnvoyとIstiodのデバッグ を参照してください。
istioctl
自動補完
Zshターミナルシェルで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
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 "$(brew --prefix)/share"
Linuxベースのオペレーティングシステムを使用している場合は、DebianベースのLinuxディストリビューションの場合はapt-get install bash-completion
コマンド、RPMベースのLinuxディストリビューションの場合はyum install bash-completion
コマンドを使用して、Bash補完パッケージをインストールできます。これらは最も一般的な2つのケースです。
bash-completion
パッケージがLinuxシステムにインストールされたら、~/.bash_profile
ファイルに次の行を追加してください。
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
自動補完の有効化
システムでistioctl
補完を有効にするには、使用するシェルに応じた手順に従ってください。
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