kubectl 未取得所有 pod

kubectl 未取得所有 pod

我正在使用 Google Cloud Platform,並且在 GKE 上運行兩個不同的 kubernetes 叢集。現在這些集群是區域集群,並且運行在不同的區域上。問題是當我使用 Cloud shell 時,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 替換為您的叢集的名稱。

如果目標叢集未在預設區域或區域中運行,或者您沒有設定預設區域或區域,則需要在命令。

注意:執行 gcloud 容器叢集 get-credentials 也會將 kubectl 的目前上下文變更為該叢集。

相關內容