Kubernetesが提供する、 kubernetes APIを使用してKubernetesクラスターのと通信するためのコマンドラインツールです。
このツールの名前は、 です。
コマンドラインツールを使うと、Kubernetesクラスターを制御できます。環境設定のために、は、ディレクトリにあるという名前のファイルを探します。他のkubeconfigファイルは、環境変数を設定するか、フラグを設定することで指定できます。
この概要では、の構文を扱い、コマンド操作を説明し、一般的な例を示します。サポートされているすべてのフラグやサブコマンドを含め、各コマンドの詳細については、kubectlリファレンスドキュメントを参照してください。
インストール方法については、kubectlのインストールおよびセットアップをご覧ください。クイックガイドは、チートシートをご覧ください。コマンドラインツールに慣れている方は、 for Docker UsersでKubernetesの同等のコマンドを説明しています。
ターミナルウィンドウからコマンドを実行するには、以下の構文を使用します。
ここで、、、、は、以下を表します。
- : 1つ以上のリソースに対して実行したい操作を指定します。例えば、、、、です。
- : リソースタイプを指定します。リソースタイプは大文字と小文字を区別せず、単数形や複数形、省略形を指定できます。例えば、以下のコマンドは同じ出力を生成します。
- : リソースの名前を指定します。名前は大文字と小文字を区別します。のように名前が省略された場合は、すべてのリソースの詳細が表示されます。
複数のリソースに対して操作を行う場合は、各リソースをタイプと名前で指定するか、1つまたは複数のファイルを指定することができます。
- リソースをタイプと名前で指定する場合
- タイプがすべて同じとき、リソースをグループ化するにはとします。
例: - 複数のリソースタイプを個別に指定するには、とします。
例:
- タイプがすべて同じとき、リソースをグループ化するにはとします。
- リソースを1つ以上のファイルで指定する場合は、とします。
- 特に設定ファイルについては、YAMLの方がより使いやすいため、JSONではなくYAMLを使用してください。
例:
- 特に設定ファイルについては、YAMLの方がより使いやすいため、JSONではなくYAMLを使用してください。
- リソースをタイプと名前で指定する場合
- : オプションのフラグを指定します。例えば、またはフラグを使って、Kubernetes APIサーバーのアドレスやポートを指定できます。
ヘルプが必要な場合は、ターミナルウィンドウからを実行してください。
デフォルトでは、は最初にPod内で動作しているか、つまりクラスター内で動作しているかどうかを判断します。まず、との環境変数を確認し、サービスアカウントのトークンファイルがに存在するかどうかを確認します。3つともクラスター内で見つかった場合、クラスター内認証とみなされます。
後方互換性を保つため、クラスター内認証時に環境変数が設定されている場合には、サービスアカウントトークンのデフォルトの名前空間が上書きされます。名前空間のデフォルトに依存しているすべてのマニフェストやツールは、この影響を受けます。
環境変数
環境変数が設定されている場合、名前空間に属するリソースのCLI操作は、デフォルトで環境変数の値になります。例えば、変数にが設定されている場合、は、名前空間のPodを返します。これは、Podが名前空間に属するリソースであり、コマンドで名前空間が指定されていないためです。の出力を見て、リソースが名前空間に属するかどうかを判断してください。
明示的にを使用すると、この動作は上書きされます。
kubectlによるServiceAccountトークンの処理方法
以下の条件がすべて成立した場合、
- にマウントされたKubernetesサービスアカウントのトークンファイルがある
- 環境変数が設定されている
- 環境変数が設定されている
- kubectlコマンドラインで名前空間を明示的に指定しない
kubectlはクラスター内で実行されているとみなして、そのServiceAccountの名前空間(これはPodの名前空間と同じです)を検索し、その名前空間に対して機能します。これは、クラスターの外の動作とは異なります。kubectlがクラスターの外で実行され、名前空間を指定しない場合、kubectlコマンドは、クライアント構成の現在のコンテキストに設定されている名前空間に対して動作します。kubectlのデフォルトの名前空間を変更するには、次のコマンドを使用できます。
以下の表に、のすべての操作の簡単な説明と一般的な構文を示します。
コマンド操作について詳しく知りたい場合は、kubectlリファレンスドキュメントを参照してください。
以下の表に、サポートされているすべてのリソースと、省略されたエイリアスの一覧を示します。
(この出力はから取得でき、Kubernetes 1.25.0時点で正確でした。)
ある特定のコマンドの出力に対してフォーマットやソートを行う方法については、以下の節を参照してください。どのコマンドが様々な出力オプションをサポートしているかについては、kubectlリファレンスドキュメントをご覧ください。
すべてのコマンドのデフォルトの出力フォーマットは、人間が読みやすいプレーンテキスト形式です。特定のフォーマットで、詳細をターミナルウィンドウに出力するには、サポートされているコマンドにまたはフラグのいずれかを追加します。
構文
の操作に応じて、以下の出力フォーマットがサポートされています。
例
この例において、以下のコマンドは1つのPodの詳細を、YAML形式のオブジェクトとして出力します。
各コマンドでサポートされている出力フォーマットの詳細については、kubectlリファレンスドキュメントを参照してください。
カスタムカラム
カスタムカラムを定義して、必要な詳細のみをテーブルに出力するには、オプションを使います。カスタムカラムをインラインで定義するか、またはのようにテンプレートファイルを使用するかを選択できます。
例
インラインで定義する例は、以下の通りです。
テンプレートファイルを使用して定義する例は、以下の通りです。
ここで、には以下の内容が含まれます。
讯享网
どちらのコマンドを実行した場合でも、以下の結果を得ます。
讯享网
サーバーサイドカラム
は、サーバーからオブジェクトに関する特定のカラム情報を受け取ることをサポートしています。 つまり、与えられた任意のリソースについて、サーバーはそのリソースに関連する列や行を返し、クライアントが表示できるようにします。 これにより、サーバーが表示の詳細をカプセル化することで、同一クラスターに対して使用されているクライアント間で、一貫した人間が読みやすい出力が可能です。
この機能は、デフォルトで有効になっています。無効にするには、コマンドにフラグを追加します。
例
Podの状態に関する情報を表示するには、以下のようなコマンドを使用します。
以下のように出力されます。
ターミナルウィンドウで、オブジェクトをソートされたリストに出力するには、サポートされているコマンドにフラグを追加します。フラグで任意の数値フィールドや文字列フィールドを指定することで、オブジェクトをソートします。フィールドの指定には、jsonpath式を使用します。
構文
例
名前でソートしたPodのリストを表示するには、以下のように実行します。
よく使われるの操作に慣れるために、以下の例を使用してください。
- ファイルや標準出力から、リソースの適用や更新を行います。
- 1つ以上のリソースの一覧を表示します。
- 1つ以上のリソースの詳細な状態を、デフォルトでは初期化されないものも含めて表示します。
- ファイル、標準出力、または指定したラベルセレクター、名前、リソースセレクター、リソースを指定して、リソースを削除します。
- Pod内のコンテナに対してコマンドを実行します。
- Pod内のコンテナのログを表示します。
- 提案されたクラスターに対する更新の差分を表示します。
プラグインの書き方や使い方に慣れるために、以下の例を使用してください。
プラグインを書いたら、実行可能にします。
讯享网
で利用可能なプラグインをすべて表示するには、サブコマンドを使用してください。
出力は以下のようになります。
コマンドは、実行不可能なプラグインや、他のプラグインの影に隠れてしまっているプラグインなどについて、警告することもできます。例えば、以下のようになります。
讯享网
プラグインは、既存のコマンドの上に、より複雑な機能を構築するための手段であると考えることができます。
次の例では、下記の内容を含んだが既に作成済であることを前提としています。
上記のコマンドを実行すると、KUBECONFIGファイル内のカレントコンテキストのユーザーを含んだ出力を得られます。
- リファレンスドキュメントをお読みください。
- kubectlコマンドリファレンス
- コマンドライン引数リファレンス
- の使用規則について学習してください。
- kubectlのJSONPathのサポートについてお読みください。
- プラグインを使用して kubectl を拡張する方法についてお読みください。
- プラグインについてより詳しく知りたい場合は、example CLI pluginをご覧ください。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/195266.html