[Kubernetes入門] kubectlのアクセス先(コンテキスト)を切り替える方法

この記事は公開されてから半年以上経過しています。情報が古い可能性がありますので、ご注意ください。

kubectlコマンドはKubernetesのコマンドラインインターフェイスです。kubectlコマンドの設定は、~/.kube/configファイルに設定されています。本記事では複数のKubernetesクラスタへの接続方法を管理するcontextの概要と接続先の切り替え方法を紹介します。

対象読者

  • Kubernetesを初めて利用する管理者、開発者

TL;DR

目次

  1. contextとは?
  2. 現在のコンテキストを調べる方法は?
  3. コンテキストの一覧を表示する方法は?
  4. コンテキストを切り替えるには?
  5. コンテキストを削除するには?
  6. さいごに

contextとは?

contextはクラスタの情報、ユーザ、ネームスペースを組み合わせたものです。この組み合わせで、どのKubernetesクラスタに接続するかが決まります。

kubernetes_context

  • contextにはcluster、user、namespaceの3つのパラメータがあります。
  • contextにはclusterとuserが含まれている必要があります。
  • clusterとuserは、すべてのcontextで共有されているので、すべてのcontextで利用することができます。
  • clusterとuserのペアで接続先のKubernetesクラスタが決まります。
  • namespaceはデフォルトのネームスペースを指定します。オプション設定なので、ネームスペースを変更する必要があるときだけ設定します。
  • kubectlコマンドでコンテキストを指定しなかった場合、カレントコンテキストが接続先になります。

現在のコンテキストを調べる方法は?

現在のkubectlの接続先(カレントコンテキスト)を調べるには、kubectl config current-contextコマンドを使います。

表示された結果が、現在のコンテキスト名になります。

コンテキストの一覧を表示する方法は?

コンテキストの一覧を表示するにはkubectl config get-contextsコマンドを使います。

*があるコンテキストが、カレントコンテキスト(現在のコンテキスト)になります。

コンテキストを切り替えるには?

コンテキストを切り替えるにはkubectl config use-context <context>コマンドを使います。

kubectlコマンドの--contextオプションを利用することで、コマンドの実行ごとにコンテキストを切り替えることもできます。

コンテキストを削除するには?

コンテキストを削除するには、kubectl config delete-context <context>コマンドを使います。

さいごに

本記事ではkubectlのコンテキストの切り替え方法を紹介しました。

GKEのgcloudコマンドでKubernetesクラスタを作成した場合など、自動的にkuectlのカレントコンテキストが作成したクラスタに切り替わります。複数のKubernetesクラスタを利用している場合、いつの間にかコンテキストが切り替わっている可能性もあります。kubectlコマンドを実行するときに、カレントコンテキストが目的のクラスタであるか、きちんと確認をしてからコマンドを実行するように、日ごろから意識していきたいですね。

スカイアーチ ファンタジー研究室

スカイアーチ ファンタジー研究室

EasyDoggie