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:$PATHbashまたは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