Istioctlコマンドラインツールの使用

個々のコンポーネントの動作については、ログを調べたり、イントロスペクションで内部を覗いたりすることで、洞察を得ることができます。それでも不十分な場合は、以下の手順で詳細な調査方法を説明します。

istioctlツールは、サービスオペレーターがIstioサービスメッシュデプロイメントをデバッグおよび診断できる設定コマンドラインユーティリティです。Istioプロジェクトには、BashとZshの自動補完を有効にするistioctl用の2つの便利なスクリプトも含まれています。これらのスクリプトはどちらも、現在利用可能なistioctlコマンドをサポートしています。

始める前に

Istioコントロールプレーンと同じバージョンのistioctlを使用することをお勧めします。バージョンを一致させることで、予期せぬ問題を回避できます。

istioctlのインストール

curlを使用してistioctlバイナリをインストールする

  1. 次のコマンドで最新リリースをダウンロードします

    $ curl -sL https://istio.dokyumento.jp/downloadIstioctl | sh -
    
  2. macOSまたはLinuxシステムで、istioctlクライアントをパスに追加します

    $ export PATH=$HOME/.istioctl/bin:$PATH
    
  3. 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"

自動補完の有効化

システムでistioctl補完を有効にするには、使用するシェルに応じた手順に従ってください。

bash自動補完ファイルのインストール

bashを使用している場合、istioctl自動補完ファイルはtoolsディレクトリにあります。使用するには、istioctl.bashファイルをホームディレクトリにコピーし、.bashrcファイルからistioctlタブ補完ファイルをソースするために、次の行を追加します。

$ source ~/istioctl.bash

自動補完の使用

istioctl補完ファイルが正しくインストールされている場合、istioctlコマンドを入力中にTabキーを押すと、選択できるコマンド候補が表示されます。

$ istioctl proxy-<TAB>
proxy-config proxy-status
この情報は役に立ちましたか?
改善のための提案はありますか?

フィードバックありがとうございます!