GKE 節點服務帳戶深入分析

本頁說明 Google Kubernetes Engine (GKE) 節點服務帳戶洞察資料的網路分析器洞察資料。如要瞭解所有洞察資料類型,請參閱「洞察資料群組和類型」。

如要在 gcloud CLI 或 Recommender API 中查看這些洞察資料,請使用下列洞察資料類型:

  • google.networkanalyzer.container.serviceAccountInsight

您需要具備下列權限:

  • recommender.networkAnalyzerGkeServiceAccountInsights.list
  • recommender.networkAnalyzerGkeServiceAccountInsights.get

如要進一步瞭解如何使用 Recommender API 取得 Network Analyzer 深入分析資料,請參閱「使用 Recommender CLI 和 API」。

GKE 節點服務帳戶已停用

這項洞察資料指出,叢集中有一或多個集區使用已停用的 GKE 節點服務帳戶,這可能導致在服務帳戶停用時,叢集中建立的任何節點無法啟動並註冊。

這項洞察包含下列資訊:

  • 服務帳戶:一種特殊的帳戶,使用者通常並非真人,而是應用程式或運算工作負載 (例如 Compute Engine 執行個體)。每個服務帳戶都有專屬的電子郵件地址,以利識別。這項資訊可在 Recommender API 中取得。
  • GKE 叢集:GKE 叢集名稱
  • 節點集區:使用停用的服務帳戶的節點集區清單

詳情請參閱「啟用 Compute Engine 預設服務帳戶」和「停用服務帳戶」。

建議

啟用節點服務帳戶。如果受影響的節點集區中有未註冊的節點,這些節點會重新啟動並正確註冊至叢集。所有節點可能需要一段時間才能重新啟動。如要快速解決問題,建議您調整節點集區大小,將節點數調為零,然後再調回 X 個節點,或是建立使用相同節點服務帳戶的新節點集區。

GKE 節點集區會使用 Compute Engine 預設服務帳戶

GKE 叢集中的節點集區會使用 Compute Engine 預設服務帳戶做為節點服務帳戶。這個帳戶需要的權限多過於執行 Google Kubernetes Engine 叢集所需。

這項洞察包含下列資訊:

  • GKE 叢集:GKE 叢集名稱
  • 節點集區:使用預設服務帳戶的節點集區清單

詳情請參閱「使用最低權限的服務帳戶」一文。

建議

建立及使用權限較低的服務帳戶 (而非 Compute Engine 預設服務帳戶) 供節點使用。

GKE 節點集區的存取權範圍設定錯誤

GKE 叢集中的節點集區已手動指定存取範圍,但指定的範圍不足以註冊節點。

如果工作負載使用應用程式預設憑證 (ADC)存取權範圍是一種舊式方法,可為節點和在節點上執行的工作負載授予權限。針對 GKE 節點,請一律使用至少預設的範圍,否則無法註冊。

這項洞察包含下列資訊:

  • GKE 叢集:GKE 叢集名稱
  • 節點集區:列出存取權範圍設定錯誤的節點集區

詳情請參閱「GKE 中的存取權範圍」。

建議

請將節點集區換成具有足夠存取範圍的節點集區。如要建立具有足夠存取權範圍的節點集區,請執行下列任一操作:

  • 建立新的節點集區時,不指定存取範圍。在 Google Cloud CLI 中,請勿在呼叫 gcloud container node-pools create 時加入旗標 --scopes

    如要授權在節點上執行的工作負載,請使用 Identity and Access Management (IAM) 權限或 Kubernetes 角色型存取權控管 (RBAC)。這麼做是為了授予特定 IAM 服務帳戶或 Kubernetes 服務帳戶存取權。詳情請參閱「設定工作負載的自訂服務帳戶」一文。

  • 在手動指定存取範圍的新節點集區清單中,新增下列範圍。

    • https://www.googleapis.com/auth/devstorage.read_only
    • https://www.googleapis.com/auth/service.management.readonly
    • https://www.googleapis.com/auth/servicecontrol
    • https://www.googleapis.com/auth/trace.append
    • https://www.googleapis.com/auth/logging.write
    • https://www.googleapis.com/auth/monitoring.write