はじめに
Kubeconfig ファイルは、Kubernetes クラスターへのアクセスを構成するために使用されます。これらのファイルには、次の情報が指定されます。
- 使用するクラスター
- 認証に使用するユーザー
- 使用するコンテキスト(クラスターとユーザーを組み合わせたもの)
既定では、kubectl は ~/.kube/config ファイルを kubeconfig ファイルとして使用します。ただし、--kubeconfig フラグを使用して、異なる kubeconfig ファイルを指定することもできます。
Minikube クラスターを起動する
リソースを作成する前に、稼働している Kubernetes クラスターが必要です。Minikube は、ローカル マシン上で動作する軽量の Kubernetes 環境です。
作業ディレクトリに移動する:
ターミナルを開き、既定のプロジェクト フォルダに移動します。
cd /home/labex/projectMinikube を起動する:
Minikube を起動して Kubernetes クラスターを初期化します。
minikube start- このコマンドは、ローカル マシン上に単一ノードの Kubernetes クラスターをセットアップします。
- Minikube の起動には、システムの性能に応じて数分かかる場合があります。
Minikube が稼働していることを確認する:
Minikube クラスターの状態を確認します。
minikube statuskubeletやapiserverなどのコンポーネントがRunningと表示されていることを確認します。- クラスターが稼働していない場合は、
minikube startを再度実行します。
Minikube の起動に問題がある場合は、必要に応じて minikube delete を使用して環境をリセットします。
Kubeconfig ファイルを表示する
kubeconfig ファイルを変更する前に、その内容を表示しましょう。kubeconfig ファイルの内容を表示するには、次のコマンドを使用します。
kubectl config view
このコマンドは、すべてのクラスター、ユーザー、コンテキストを含む、kubeconfig ファイル全体を表示します。
Kubeconfig ファイルにクラスターを追加する
kubeconfig ファイルにクラスターを追加するには、kubectl config set-cluster コマンドを使用します。このコマンドには、クラスター名、サーバー URL、および証明書認可機関 (CA) データが必要です。以下は例です。
kubectl config set-cluster my-cluster \
--server=https://kubernetes.default.svc \
--certificate-authority=/home/labex/.minikube/ca.crt
このコマンドは、指定されたサーバー URL と CA データを持つ my-cluster という名前のクラスターを kubeconfig ファイルに追加します。
Kubeconfig ファイルにユーザーを追加する
kubeconfig ファイルにユーザーを追加するには、kubectl config set-credentials コマンドを使用します。このコマンドには、ユーザー名、ユーザーのクライアント証明書、およびユーザーのクライアント キーが必要です。以下は例です。
kubectl config set-credentials my-user \
--client-certificate=/home/labex/.minikube/profiles/minikube/client.crt \
--client-key=/home/labex/.minikube/profiles/minikube/client.key
このコマンドは、指定されたクライアント証明書とキーを持つ my-user という名前のユーザーを kubeconfig ファイルに追加します。
Kubeconfig ファイルにコンテキストを作成する
kubeconfig ファイルにコンテキストを作成するには、kubectl config set-context コマンドを使用します。このコマンドには、コンテキスト名、使用するクラスター、および認証するユーザーが必要です。以下は例です。
kubectl config set-context my-context \
--cluster=my-cluster \
--user=my-user
このコマンドは、my-cluster クラスターと my-user ユーザーを使用して、kubeconfig ファイルに my-context という名前のコンテキストを作成します。
Kubeconfig ファイルでコンテキストを使用する
kubeconfig ファイルでコンテキストを使用するには、kubectl config use-context コマンドを使用します。このコマンドには、使用するコンテキスト名が必要です。以下は例です。
kubectl config use-context my-context
このコマンドは、現在のコンテキストを my-context に設定するため、その後のすべての kubectl コマンドは指定されたクラスターとユーザーを使用します。
まとめ
この実験では、kubectl コマンドライン ツールを使用して kubeconfig ファイルを変更する方法を学びました。kubeconfig ファイルにクラスター、ユーザー、コンテキストを追加する方法と、コンテキストを使用して Kubernetes クラスターに認証する方法を学びました。


