kubectl
コマンドはKubernetesのコマンドラインインターフェイスです。kubectlコマンドの設定は、~/.kube/config
ファイルに設定されています。本記事では複数のKubernetesクラスタへの接続方法を管理するcontextの概要と接続先の切り替え方法を紹介します。
対象読者
- Kubernetesを初めて利用する管理者、開発者
TL;DR
1 2 3 |
$ kubectl config current-context #現在のコンテキスト $ kubectl config get-contexts #コンテキストの一覧 $ kubectl config use-context <context> #コンテキストの切り替え |
目次
contextとは?
contextはクラスタの情報、ユーザ、ネームスペースを組み合わせたものです。この組み合わせで、どのKubernetesクラスタに接続するかが決まります。
- contextにはcluster、user、namespaceの3つのパラメータがあります。
- contextにはclusterとuserが含まれている必要があります。
- clusterとuserは、すべてのcontextで共有されているので、すべてのcontextで利用することができます。
- clusterとuserのペアで接続先のKubernetesクラスタが決まります。
- namespaceはデフォルトのネームスペースを指定します。オプション設定なので、ネームスペースを変更する必要があるときだけ設定します。
- kubectlコマンドでコンテキストを指定しなかった場合、カレントコンテキストが接続先になります。
現在のコンテキストを調べる方法は?
現在のkubectlの接続先(カレントコンテキスト)を調べるには、kubectl config current-context
コマンドを使います。
1 2 |
$ kubectl config current-context gke_easydoggie_us-west1-c_easydoggie |
表示された結果が、現在のコンテキスト名になります。
コンテキストの一覧を表示する方法は?
コンテキストの一覧を表示するにはkubectl config get-contexts
コマンドを使います。
1 2 3 4 |
$ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE docker-for-desktop docker-for-desktop-cluster docker-for-desktop * gke_easydoggie_us-west1-c_easydoggie gke_easydoggie_us-west1-c_easydoggie gke_easydoggie_us-west1-c_easydoggie |
*
があるコンテキストが、カレントコンテキスト(現在のコンテキスト)になります。
コンテキストを切り替えるには?
コンテキストを切り替えるにはkubectl config use-context <context>
コマンドを使います。
1 2 |
$ kubectl config use-context docker-for-desktop Switched to context "docker-for-desktop". |
kubectlコマンドの--context
オプションを利用することで、コマンドの実行ごとにコンテキストを切り替えることもできます。
コンテキストを削除するには?
コンテキストを削除するには、kubectl config delete-context <context>
コマンドを使います。
1 2 |
$ kubectl config delete-context gke_easydoggie_us-west1-c_easydoggie deleted context gke_easydoggie_us-west1-c_easydoggie from /home/maint/.kube/config |
さいごに
本記事ではkubectlのコンテキストの切り替え方法を紹介しました。
GKEのgcloudコマンドでKubernetesクラスタを作成した場合など、自動的にkuectlのカレントコンテキストが作成したクラスタに切り替わります。複数のKubernetesクラスタを利用している場合、いつの間にかコンテキストが切り替わっている可能性もあります。kubectlコマンドを実行するときに、カレントコンテキストが目的のクラスタであるか、きちんと確認をしてからコマンドを実行するように、日ごろから意識していきたいですね。
投稿者プロフィール
最新の投稿
- AWS2021年12月2日AWS Graviton3 プロセッサを搭載した EC2 C7g インスタンスが発表されました。
- セキュリティ2021年7月14日ゼロデイ攻撃とは
- セキュリティ2021年7月14日マルウェアとは
- WAF2021年7月13日クロスサイトスクリプティングとは?