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 上であらゆるアクションを実行できるように承認する必要もあります。クラスタ管理者は、適切なロールベース アクセス制御を設定して認可を構成します。