kubeconfig について

このページは、クラウド インフラストラクチャの設定、モニタリング、管理を担当する IT 管理者とオペレーターを対象としています。 Google Cloud のコンテンツで参照する一般的なロールとタスク例の詳細については、一般的な GKE Enterprise ユーザーロールとタスクをご覧ください。

Kubernetes 構成ファイル

Kubernetes は、kubeconfig という名前の YAML ファイルを使用して、kubectl のクラスタ認証情報を格納します。kubeconfig には、コマンドの実行時に kubectl が参照するコンテキストのリストが含まれています。デフォルトで、このファイルは $HOME/.kube/config に保存されます。

コンテキストとは、アクセス パラメータのグループのことです。各コンテキストには 1 つの Kubernetes クラスタ、1 人のユーザー、1 つの名前空間が含まれます。現在のコンテキストとは、現在 kubectl のデフォルトとなっているクラスタのことです。すべての kubectl コマンドはこのクラスタに対して実行されます。

クラスタを作成したら、kubeconfig エントリを生成するに従って、クラスタのコンテキストをローカル kubeconfig に追加します。

プライベート エンドポイント

すべてのクラスタには正規のエンドポイントがあります。このエンドポイントは、kubectl や他のサービスと TCP ポート 443 経由でクラスタ コントロール プレーンと通信するために使用する Kubernetes API サーバーを公開します。Azure では、このエンドポイントは、内部接続ロードバランサにバックアップされた単一のプライベート IP です(例: 10.0.1.5)。このエンドポイントには、公共のインターネットからはアクセスできません。プライベート クラスタ エンドポイント アドレスは、gcloud container azure clusters describe コマンドの出力の endpoint フィールドから取得できます。

Connect ゲートウェイ エンドポイント

デフォルトでは、gcloud container azure clusters get-credentials コマンドは Connect ゲートウェイを使用する kubeconfig を生成します。この kubeconfig により、kubectl は Connect を使用し、ユーザーの代わりに、トラフィックをプライベート エンドポイントに安全に転送します。Connect ゲートウェイを使用する場合、エンドポイントは https://connectgateway.googleapis.com/v1/projects/PROJECT_NUMBER/memberships/CLUSTER_NAME のようになります。ここで PROJECT_NUMBER はプロジェクト番号、CLUSTER_NAME はクラスタ名です。

VNet を介してクラスタのプライベート・エンドポイントにアクセスできれば、プライベート・エンドポイントに直接接続できます。プライベート・エンドポイントを使用して kubeconfig を生成するには、gcloud container azure clusters get-credentials --private-endpoint コマンドを使用します。

kubectl の認証について

すべての GKE on Azure は、 Google Cloudユーザー ID とサービス アカウント ID を受け入れるように構成されています。受け入れる際には、kubectl から提供された認証情報を検証し、ユーザー ID またはサービス アカウント ID に関連付けられたメールアドレスを取得します。したがって、これらのアカウントの認証情報に userinfo.email OAuth スコープを記述して、正しく認証されるようにする必要があります。

gcloud を使用して新しい、または既存のクラスタ用の環境の kubeconfig をセットアップする場合、gcloud は、gcloud 自体で使用されるものと同じ認証情報を kubectl に渡します。たとえば gcloud auth login を使用する場合、userinfo.email スコープを含めそのユーザー個人の認証情報が kubectl に渡されます。これにより、GKE on Azure で kubectl クライアントを認証できます。

認証されたユーザーまたは Google Cloud サービス アカウントを、GKE on Azure 上であらゆるアクションを実行できるように承認する必要もあります。クラスタ管理者は、適切なロールベース アクセス制御を設定して認可を構成します。