kubectl 没有获取所有 pod

kubectl 没有获取所有 pod

我正在使用 Google Cloud Platform,并且在 GKE 上运行两个不同的 kubernetes 集群。现在这些集群是区域集群,并且在不同的区域上运行。问题是当我使用云外壳时,kubectl get pods会从另一个集群获取 pod。我已经kubectl config set-cluster xxx设置了集群,但仍然只显示其他 pod。

答案1

如果kubectl get pods从另一个集群返回 pod,则您的 kubectl 配置可能指向另一个集群。

您可以使用以下命令检查 kubectl 正在使用的当前上下文(当前集群)kubectl config current-context:。

注意,正如 GKE 文档所强调的那样

当您使用 Google Cloud 控制台或从其他计算机使用 gcloud CLI 创建集群时,您环境的 kubeconfig 文件不会更新。此外,如果项目团队成员使用 gcloud CLI 从其计算机创建集群,则他们的 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 的当前上下文更改为该集群。

相关内容