Kubeconfig ファイルを変更する

KubernetesBeginner
オンラインで実践に進む

はじめに

Kubeconfig ファイルは、Kubernetes クラスターへのアクセスを構成するために使用されます。これらのファイルには、次の情報が指定されます。

  • 使用するクラスター
  • 認証に使用するユーザー
  • 使用するコンテキスト(クラスターとユーザーを組み合わせたもの)

既定では、kubectl~/.kube/config ファイルを kubeconfig ファイルとして使用します。ただし、--kubeconfig フラグを使用して、異なる kubeconfig ファイルを指定することもできます。

Minikube クラスターを起動する

リソースを作成する前に、稼働している Kubernetes クラスターが必要です。Minikube は、ローカル マシン上で動作する軽量の Kubernetes 環境です。

  1. 作業ディレクトリに移動する:

    ターミナルを開き、既定のプロジェクト フォルダに移動します。

    cd /home/labex/project
    
  2. Minikube を起動する:

    Minikube を起動して Kubernetes クラスターを初期化します。

    minikube start
    
    • このコマンドは、ローカル マシン上に単一ノードの Kubernetes クラスターをセットアップします。
    • Minikube の起動には、システムの性能に応じて数分かかる場合があります。
  3. Minikube が稼働していることを確認する:

    Minikube クラスターの状態を確認します。

    minikube status
    
    • kubeletapiserver などのコンポーネントが 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 クラスターに認証する方法を学びました。