kubectl がすべてのポッドを取得できない

kubectl がすべてのポッドを取得できない

私は Google Cloud Platform を使用しており、GKE で 2 つの異なる Kubernetes クラスターを実行しています。現在、これらのクラスターはゾーン クラスターであり、異なるゾーンで実行されています。問題は、クラウド シェルを使用しているときに、kubectl get pods別のクラスターからポッドを取得することです。クラスターを設定するために使用しましたkubectl config set-cluster xxxが、それでも他のポッドのみが表示されます。

答え1

別のクラスターからポッドが返される場合kubectl get pods、kubectl 構成が他のクラスターを指している可能性があります。

kubectl が使用している現在のコンテキスト (現在のクラスター) は、次のコマンドで確認できますkubectl config current-context

ご了承ください、GKEのドキュメントで強調されているように:

Google Cloud コンソールを使用してクラスタを作成したり、別のパソコンから gcloud CLI を使用してクラスタを作成したりした場合、環境の kubeconfig ファイルは更新されません。また、プロジェクト チームのメンバーが自分のパソコンから gcloud CLI を使用してクラスタを作成した場合、そのメンバーの kubeconfig は更新されますが、自分の kubeconfig は更新されません。kubeconfig エントリには、次のいずれかが含まれます。

gcloud auth listに表示されている認証情報、または

構成されている場合のアプリケーションのデフォルト資格情報。

環境で kubeconfig コンテキストを生成するには、container.clusters.get 権限があることを確認してください。この権限を提供する最小権限の IAM ロールは container.clusterViewer です。

特定のクラスターの kubeconfig コンテキストを生成するには、次のコマンドを実行します。

gcloud container clusters get-credentials CLUSTER_NAME

CLUSTER_NAME をクラスターの名前に置き換えます。

ターゲット クラスターがデフォルトのゾーンまたはリージョンで実行されていない場合、またはデフォルトのゾーンまたはリージョンを設定していない場合は、コマンドでリージョン (--region=REGION) またはゾーン (--zone=ZONE) を指定する必要があります。

注: gcloud container clusters get-credentials を実行すると、kubectl の現在のコンテキストもそのクラスターに変更されます。

関連情報