GKE 已知問題

本頁列出 GKE 的已知問題。本頁面適用於管理底層技術基礎架構生命週期,以及在服務等級目標 (SLO) 未達成或應用程式失敗時,回應快訊和頁面的管理員和架構師。

本頁列出所有支援版本的已知問題,以及延長支援中最早版本的前兩個次要版本。 版本延長支援期限結束後,所有 N-2 問題都會移除。舉例來說,當 1.30 版的延長支援期結束時,系統會移除 1.28 版和更早版本特有的已知問題。

如果您是 Google 開發人員計畫成員,請儲存這個頁面,以便在發布與這個頁面相關的版本說明時收到通知。詳情請參閱「儲存的頁面」。

如要依產品版本或類別篩選已知問題,請從下列下拉式選單選取篩選條件。

選取 GKE 版本:

選取問題類別:

或者,搜尋您的問題:

類別 已識別版本 已修正的版本 問題和解決方法
作業 1.33.4-gke.1036000 之前的 1.33 版本 1.33.4-gke.1036000 以上版本

動態佈建的 Lustre 執行個體效能層級不正確

動態佈建 Lustre 執行個體時,無論 API 要求中指定的 perUnitStorageThroughput 值為何,執行個體建立作業都會因 InvalidArgument 錯誤而失敗。

解決方法:

將 GKE 叢集升級至 1.33.4-gke.1036000 以上版本。如果使用穩定版,可能還無法取得較新版本。在這種情況下,您可以從「一般」或「快速」管道手動選取包含修正程式的版本。

作業
  • 1.32.3-gke.1099000 以上版本
  • 1.33
1.33.3-gke.1266000 以上版本

使用 Cloud Storage FUSE CSI 驅動程式重新命名或移動檔案時發生輸入/輸出錯誤

使用受影響版本的 Cloud Storage FUSE CSI 驅動程式時,重新命名或移動 Cloud Storage bucket 中的檔案可能會失敗,並顯示 I/O 錯誤。

解決方法:

在 Pod 資訊清單中暫時新增特定 Sidecar 映像檔定義。在 Pod 資訊清單的 spec.containers 區段中,新增下列容器定義和映像檔:gcr.io/gke-release/gcs-fuse-csi-driver-sidecar-mounter:v1.8.9-gke.2

    # Add the following block to use the fixed sidecar image
    - name: gke-gcsfuse-sidecar
      image: gcr.io/gke-release/gcs-fuse-csi-driver-sidecar-mounter:v1.8.9-gke.2
    

詳情請參閱「為 Sidecar 容器設定私人映像檔」中的 Pod 資訊清單。

將叢集升級至修正的 GKE 版本或更新版本後,您必須從資訊清單中移除整個 gke-gcsfuse-sidecar 區塊。移除這個區塊後,GKE 會繼續自動為升級後的叢集版本插入及管理正確的 Sidecar 映像檔。

記錄和監控 所有版本 待定

gke-metrics-agent DaemonSet 中的競爭狀況

在節點集區中新增 cloud.google.com/gke-metrics-agent-scaling-level 標籤,手動增加 gke-metrics-agent DaemonSet 的記憶體配置時,DaemonSet 會在新節點建立期間發生競爭情況。這種競爭情況會導致間歇性重新啟動,並可能導致指標遺失。

發生這個問題的原因是,標籤會延遲新增至節點集區中的新節點。在這段延遲期間,DaemonSet 會在該節點上建立具有原始記憶體配置的 Pod。套用標籤後,DaemonSet 會建立具有新記憶體配置的 Pod。更新後的 Pod 啟動時,現有 Pod 不會完全刪除。這兩個 Pod 都會嘗試繫結至相同的通訊埠編號。

解決方法:

cloud.google.com/gke-metrics-agent-scaling-level 標籤新增至節點集區後,請重新啟動 gke-metrics-agent DaemonSet:

kubectl -n kube-system rollout restart daemonset gke-metrics-agent
升級 1.33 1.33.2-gke.1043000

使用 containerd 2.0 時,開啟檔案的限制較低

對於執行 GKE 1.33 版的節點集區 (使用 containerd 2.0),容器的開啟檔案數 (ulimit -n) 預設軟性限制會降至 1024。

這是 containerd 本身的變更 (請參閱 containerd PR #8924),其中 LimitNOFILE 已從 containerd.service 中移除,這是最佳做法,因此會套用預設的系統軟性限制。

如果工作負載預期較高的預設軟性限制 (例如隱含依賴先前的較高預設值),可能會發生失敗情形,例如 Too many open files 錯誤。

解決方法:

從 1.33 之前的修補程式版本升級至 1.33.2-gke.1043000 以上版本。

解決方法:

請使用下列任一方法,提高工作負載的開啟檔案數上限:

  • 應用程式層級調整:修改應用程式程式碼或設定,明確設定 ulimit -nprlimit --nofile=524288
  • Containerd NRI Ulimit Adjuster 外掛程式 :使用 containerd/nri ulimit-adjuster 外掛程式調整 ulimit。
  • 降級節點集區 (僅限 Standard):如果是 Standard GKE 叢集,您可以暫時降級節點集區至 1.32 版,避免發生這個問題,直到永久解決方案推出為止。
如要進一步瞭解如何遷移至 containerd 2,請參閱「將節點遷移至 containerd 2」。
升級 1.31.5-gke.1169000、1.32.1-gke.1376000 1.31.7-gke.1164000、1.32.3-gke.1512000

Invalid CRD status.storedVersions for managed CRDs

部分 GKE 管理的 CRD 可能有無效的 status.storedVersions 欄位,升級後可能會導致無法存取 CRD 物件。

這個問題會影響符合下列條件的叢集:

  • 叢集在某個時間點使用受影響的 GKE 版本。
  • 叢集在 etcd 中儲存了不支援 (served=false) 版本的 CRD 物件。

解決方法:

建議您延後叢集升級,直到問題解決為止。

或者,如果您知道叢集含有不支援的 CRD 物件版本,可以使用 kubectl patch 指令,將這些版本新增至 status.storedVersions 欄位。

運作、記錄和監控 1.32.2-gke.1652000、1.31.6-gke.1221000、1.30.10-gke.1227000
  • 1.32.2-gke.1652003 以上版本
  • 1.31.6-gke.1221001 以上版本
  • 1.30.10-gke.1227001 以上版本

缺少指標或工作負載自動調度器未調度資源

叢集大小增加超過五個節點後,您可能會發現受影響版本的指標資料有缺漏。這個問題也可能影響自動調度資源作業。

只有升級至受影響版本的叢集會受到影響。新建立的叢集應可正常運作。

解決方法:

如果受到影響,可以降級一個修補程式版本,或升級至較新的修正版本。

作業

Google Cloud Hyperdisk 大小和附加限制

通常,如果節點的磁碟區附加限制導致 Pod 無法順利排程,就會觸發新節點的自動佈建程序。如果使用 Hyperdisk 產品的工作負載排程到執行 C3 VM 的節點,系統不會自動佈建節點,而是將 Pod 排程到已滿的節點。

即使沒有可用的磁碟附件,工作負載仍會排定至節點。由於發生類似下列的錯誤,工作負載也無法啟動:

 AttachVolume.Attach failed for volume "[VOLUME NAME]" : rpc error: code = InvalidArgument desc = Failed to Attach: failed when waiting for zonal op: rpc error: code = InvalidArgument desc = operation operation-[OPERATION NUMBERS] failed (UNSUPPORTED_OPERATION): Maximum hyperdisk-balanced disks count should be less than or equal to [16], Requested : [17]

C3 機器上的所有 Hyperdisk 產品都會發生這個問題。

Hyperdisk 附加限制會因 VM vCPU 數量和 Hyperdisk 產品而異。詳情請參閱「Hyperdisk 效能限制」。

解決方法:

Hyperdisk 產品會在其他 VM 形態上觸發自動佈建。建議使用僅支援 Hyperdisk 的形狀。

作業 1.32.3-gke.1927000、1.32.3-gke.1785000、1.32.3-gke.1717000、1.32.3-gke.1440000、1.32.3-gke.1170000、1.32.3-gke.1250000、1.32.3-gke.1671000、1.32.3-gke.1596000、1.32.3-gke.1298000

TPU/GPU 節點上的 gke-metadata-server 遭到 OOMKilled

在 GKE TPU 節點 (例如 ct4p-hightpu-4t) 和 GPU 節點 (例如 a3-highgpu-8g) 上,如果伺服器的記憶體用量超過 100 MB,核心可能會以 OOMKilled 終止 gke-metadata-server

解決方法:

如果 TPU 或 GPU 節點出現 OOMKilled 事件,請與 GKE Identity 待命團隊聯絡 (元件 ID:395450),瞭解緩解措施。 gke-metadata-server

作業
  • 1.32.0-gke.1358000 至 1.32.4-gke.1106006、1.32.4-gke.1236007、1.32.4-gke.1353001、1.32.4-gke.1415001、1.32.4-gke.1533000
  • 1.33.0-gke.0 至 1.33.0-gke.1552000
  • 1.32.4-gke.1353003 以上版本
  • 1.33.0-gke.1552000 以上版本

由於 PVC 上有懸而未決的 NodePendingResize 狀態,磁碟區大小調整作業可能會停滯。

如果叢集版本為 1.32,且節點版本為 1.31 或更舊,則在調整大小期間,系統將無法更新 PersistentVolumeClaim 狀態。這個錯誤狀態會導致後續的調整大小作業無法開始,進而無法進一步調整大小。

處於這個狀態的 PVC 具有 status.allocatedResourceStatuses 欄位,其中包含 NodePendingResize,或同時包含 status.allocatedResources 欄位和 status.conditions.type: FileSystemResizePending

如果叢集使用受影響的版本時建立了 PVC,即使叢集升級至已知修正版本,您可能仍會遇到這個問題。在這種情況下,您需要修補 PVC,以透過一次性解決方法移除 status.allocatedResources 欄位。

解決方法:

如果 PVC 處於懸而未決的狀態,可以修補 PVC 來移除該狀態。您可以使用類似以下的修補程式指令,移除懸而未決的狀態:

kubectl patch pvc $PVC_NAME --subresource='status' --type='merge' -p '{"status":{"allocatedResourceStatuses":null}}'
kubectl patch pvc $PVC_NAME --subresource='status' --type='merge' -p '{"status":{"allocatedResources":null}}'
作業
  • 1.32.4-gke.1236007、1.32.4-gke.1353001
  • 1.32.4-gke.1353003 以上版本

PDCSI 驅動程式可能會過度記錄

在特定 1.32 版的 GKE 叢集上,PDCSI 驅動程式可能會發出過多的記錄訊息。 這類過多的記錄會耗用 Cloud Logging Write API 配額。

解決方法:

您可以新增排除篩選器,減少這類過多的記錄檔。 如要排除記錄訊息,避免系統將其擷取至 Cloud Logging,請使用下列查詢:

      resource.type="k8s_container"
      resource.labels.container_name="gce-pd-driver"
      (sourceLocation.file="cache.go" OR "Cannot process volume group")
    
作業
  • 1.27.16-gke.2440000 以上版本
  • 1.28.15-gke.1673000 以上版本
  • 1.29.13-gke.1038000 以上版本
  • 1.30.9 以上版本
  • 1.31.7 以上版本
  • 1.32.1-gke.1357001 以上版本
  • 1.27.16-gke.2691000 以上版本
  • 1.28.15-gke.2152000 以上版本
  • 1.29.15-gke.1218000 以上版本
  • 1.30.11-gke.1190000 以上版本
  • 1.31.7-gke.1363000 以上版本
  • 1.32.4-gke.1106000 以上版本
  • 1.33.0-gke.1552000 以上版本

如果 Pod 嘗試在先前已掛接唯讀 (RO) 磁碟區的 COS 節點上掛接 NFS 永久磁碟區,則只會以 RO 模式掛接

如果是 GKE 1.27 以上版本,使用 Kubernetes 樹內 CSI 驅動程式的 NFS 磁碟區,只能在同一節點上先前 RO 掛接後,以 RO 模式掛接永久磁碟區。

解決方法:

將節點集區降級至受影響版本之前的版本

作業
  • 1.32 版本,從 1.32.1-gke.1357001 到 1.32.4-gke.1106000 (不含)
  • 1.33.0-gke.1552000 之前的 1.33 版本
  • 1.32 版:1.32.4-gke.1106000 以上版本
  • 1.33 版:1.33.0-gke.1552000 以上版本

嘗試在 Ubuntu 節點上掛接 NFS 永久磁碟區的 Pod 將無法執行。

如果是 GKE 1.32 以上版本,使用 Kubernetes 樹內 CSI 驅動程式的 NFS 磁碟區將無法在 Ubuntu 節點上掛接永久磁碟區。發生這種情況時,您可能會看到下列錯誤訊息:

"MountVolume.SetUp failed for volume 'nfs-storage' : mount failed: exit status 1"
Output: Mount failed: mount failed: exit status 127
"Output: chroot: failed to run command 'mount': No such file or directory failed to run command mount on Ubuntu nodes"
除了看到這些錯誤訊息,使用這些磁碟區的 Pod 也無法啟動。

解決方法:

將節點集區降級至 1.31 版。

作業 >= 1.28.15-gke.1436000、< 1.28.15-gke.1668000、>= 1.29.12-gke.1040000、< 1.29.13-gke.1028000、>= 1.30.8-gke.1053000、< 1.30.8-gke.1287000、>= 1.31.4-gke.1057000、< 1.31.6-gke.1020000、>= 1.32.0-gke.1281000、< 1.32.1-gke.1302000
  • 1.28.15-gke.1668000 以上版本
  • 1.29.13-gke.1028000 以上版本
  • 1.30.8-gke.1287000 以上版本
  • 1.31.6-gke.1020000 以上版本
  • 1.32.1-gke.1302000 以上版本

由於 Linux 核心的錯誤,使用 io_uring 相關系統呼叫的 Pod 可能會進入 D (磁碟休眠) 狀態,也稱為 TASK_UNINTERRUPTIBLE。D 狀態的程序無法由信號喚醒,包括 SIGKILL

如果 Pod 受到這個已知問題影響,容器可能無法正常終止。在 containerd 記錄中,您可能會看到類似下列內容的重複訊息:Kill container [container-id],表示系統正在重複嘗試停止容器。
同時,kubelet 記錄會顯示錯誤訊息,例如:

"Kill container failed" err="rpc error: code = DeadlineExceeded desc = context deadline exceeded"

"Error syncing pod, skipping" err="[failed to \"KillContainer\" for \"container-name\" with KillContainerError: \"rpc error: code = DeadlineExceeded desc = an error occurs during waiting for container \\\"container-id\\\" to be killed: wait container \\\"container-id\\\": context deadline exceeded\", failed to \"KillPodSandbox\" for \"pod-uuid\" with KillPodSandboxError: \"rpc error: code = DeadlineExceeded desc = context deadline exceeded\"]" pod="pod-name" podUID="pod-uuid"

這些症狀表示容器中的程序卡在無法中斷的休眠狀態 (D 狀態),導致 Pod 無法正常終止。

直接使用 io_uring 的工作負載,或透過 NodeJS 等語言執行階段間接使用 io_uring 的工作負載,可能會受到這個已知問題影響。受影響的工作負載在 /proc/<pid>/state 檔案中處於 D (磁碟休眠) 狀態,且 /proc/<pid>/stack 的內容包含 io_uring 字串。NodeJS 工作負載或許可以透過 UV_USE_IO_URING=0 停用 io_uring。

解決方法:

將叢集節點升級至修正版本或更新版本。

作業 1.28、1.29、1.30、1.31
  • 1.30.8-gke.1261000 以上版本
  • 1.31.4-gke.1183000 以上版本
  • 1.32.0-gke.1448000 以上版本

使用影像串流的工作負載會因驗證錯誤而失敗

如果容器在讀取檔案時符合一組特定條件,影像串流功能中的錯誤可能會導致工作負載失敗。您可能會在 gcfsd 記錄中看到與驗證失敗相關的錯誤訊息。

如要確認是否受到影響,請使用下列搜尋查詢搜尋記錄: resource.type="k8s_node" resource.labels.project_id="[project_id]" resource.labels.cluster_name="[cluster_name]" logName="projects/[project_id]/logs/gcfsd" "backend.FileContent failed" "Request is missing required authentication credential."

如果出現這些錯誤,表示節點受到影響。

如果受到這個問題影響,您可以 升級節點集區至已修正的 GKE 版本。

作業
  • 1.30.0 至 1.30.5-gke.1443001
  • 1.31.0 至 1.31.1-gke.1678000
  • 1.30.5-gke.1628000 以上版本
  • 1.31.1-gke.1846000 以上版本

GKE 1.30 和 1.31 版的 Pod 驅逐率提高

部分使用 COS 113 和 COS 117 的 GKE 1.30 和 GKE 1.31 版本,其核心是使用 CONFIG_LRU_GEN_ENABLED=y 選項建構而成。這項選項會啟用核心功能「多代 LRU」,導致 Kubelet 誤算記憶體用量,並可能導致 Kubelet 逐出 Pod。

cos-113-18244-151-96cos-117-18613-0-76 中,設定選項 CONFIG_LRU_GEN_ENABLED 已停用。

由於這個問題取決於工作負載的記憶體用量模式,因此您不一定會看到異常的 Pod 驅逐率。 如果工作負載未在資源欄位中設定記憶體限制,kubelet 撤銷 Pod 的風險就會提高。 這是因為工作負載要求的記憶體可能超出 kubelet 回報的可用記憶體。

如果您在升級至上述 GKE 版本後,發現應用程式的記憶體用量增加,但未進行任何其他變更,則可能受到核心選項影響。

如要檢查 Pod 驅逐率是否異常,請使用 Metrics Explorer 分析下列指標: kubernetes.io/container_memory_used_byteskubernetes.io/container_memory_request_bytes

您可以使用下列 PromQL 查詢。將 cluster_namenamespace_namemetadata_system_top_level_controller_typemetadata_system_top_level_controller_name 的值,替換為要分析的工作負載名稱和類型:

max by (pod_name)(max_over_time(kubernetes_io:container_memory_used_bytes{monitored_resource="k8s_container",memory_type="non-evictable",cluster_name="REPLACE_cluster_name",namespace_name="REPLACE_namespace",metadata_system_top_level_controller_type="REPLACE_controller_type",metadata_system_top_level_controller_name="REPLACE_controller_name"}[${__interval}]))

sum by (pod_name)(avg_over_time(kubernetes_io:container_memory_request_bytes{monitored_resource="k8s_container",cluster_name="REPLACE_cluster_name",namespace_name="REPLACE_namespace",metadata_system_top_level_controller_type="REPLACE_controller_type",metadata_system_top_level_controller_name="REPLACE_controller_name"}[${__interval}]))

如果記憶體用量異常飆升,超過要求的記憶體容量,工作負載可能會更常遭到驅逐。

解決方法

如果無法升級至修正版本,且您在可部署具備權限 Pod 的 GKE 環境中執行作業,可以使用 DaemonSet 停用 Multi-Gen LRU 選項。

  1. 更新要執行 DaemonSet 的 GKE 節點集區,並使用註解停用 Multi-Gen LRU 選項。例如 disable-mglru: "true"
  2. 使用上一個步驟中使用的相同註解,更新 DaemonSet 資訊清單中的 nodeSelector 參數。 例如,請參閱 GoogleCloudPlatform/k8s-node-tools 存放區中的 disable-mglru.yaml 檔案
  3. 將 DaemonSet 部署至叢集。

DaemonSet 在所有選取的節點集區中執行後,變更會立即生效,kubelet 記憶體用量計算也會恢復正常。

作業 1.28、1.29、1.30、1.31
  • 1.28.14-gke.1175000 以上版本
  • 1.29.9-gke.1341000 以上版本
  • 1.30.5-gke.1355000 以上版本
  • 1.31.1-gke.1621000 以上版本

Pod 卡在「終止中」狀態

容器執行階段 (containerd) 中的錯誤可能會導致 Pod 和容器停滯在「Terminating」狀態,並出現類似下列的錯誤:

OCI runtime exec failed: exec failed: cannot exec in a stopped container: unknown

如果受到這個問題影響,您可以 升級節點至 GKE 版本,其中包含已修正的 containerd 版本。

作業 1.28、1.29
  • 1.28.9-gke.1103000 以上版本
  • 1.29.4-gke.1202000 以上版本
  • 1.30:所有版本

映像檔串流功能中的錯誤可能會導致容器無法啟動。

在特定 GKE 版本中,如果節點啟用映像檔串流功能,在該節點上執行的容器可能無法建立,並顯示下列錯誤:

"CreateContainer in sandbox from runtime service failed" err="rpc error: code = Unknown desc = failed to create containerd container: failed to mount [PATH]: too many levels of symbolic links"

如果受到這個問題影響,請 檢查是否有空白或重複的圖層。如果無法移除空白圖層或重複圖層,請停用圖片串流

作業 1.27、1.28、1.29
  • 1.28.9-gke.1103000 以上版本
  • 1.29.4-gke.1202000 以上版本
  • 1.30:所有版本

缺少檔案,導致圖片串流失敗

圖片串流功能中的錯誤可能會導致容器因缺少一或多個檔案而失敗。

如果節點上執行的容器啟用映像檔串流功能,且版本如下,則可能無法啟動或執行,並出現某些檔案不存在的錯誤訊息。這類錯誤的例子如下:

  • No such file or directory
  • Executable file not found in $PATH

如果受到這個問題影響,可以停用圖片串流

網路、升級與更新 1.28

閘道 TLS 設定錯誤

我們發現,在執行 GKE 1.28.4-gke.1083000 版的叢集中,設定閘道 TLS 時會發生問題。這會影響使用 SSLCertificateCertificateMap 的 TLS 設定。如果您要升級的叢集已有閘道,則對閘道所做的更新會失敗。對於新的閘道,系統不會佈建負載平衡器。我們會在日後推出的 GKE 1.28 修補程式版本中修正這個問題。

升級與更新 1.27 1.27.8 以上版本

GPU 裝置外掛程式問題

如果叢集執行 GPU,且從 1.26 升級至 1.27 修補程式版本 (早於 1.27.8),節點的 GPU 裝置外掛程式 (nvidia-gpu-device-plugin) 可能會發生問題。請視叢集狀態執行下列步驟:

  • 如果叢集執行的是 1.26 版且有 GPU,請等到叢集發布版本提供 1.27.8 版時,再手動升級叢集。
  • 如果叢集執行的是較早的 1.27 修補程式版本,且節點受到影響,請重新啟動節點,或手動刪除節點上的 nvidia-gpu-device-plugin Pod (外掛程式管理員會建立新的外掛程式)。
  • 如果叢集使用自動升級功能,這項異動不會影響您,因為自動升級只會將叢集移至含有修正程式的修補程式版本。
作業 1.27、1.28
  • 1.27.5-gke.1300 以上版本
  • 1.28.1-gke.1400 以上版本

停止所有工作負載的自動調度資源功能

如果叢集包含設定錯誤的 autoscaling/v2 HPA 物件,HorizontalPodAutoscaler (HPA) 和 VerticalPodAutoscaler (VPA) 可能會停止自動調度叢集中的所有工作負載。這個問題會影響執行舊版 GKE 1.27 和 1.28 修補程式版本的叢集 (例如 1.27.3-gke.100)。

解決方法:

請確認 spec.metrics.resource.target 中的欄位相符,例如:autoscaling/v2

  • spec.metrics.resource.target.typeUtilization 時,目標應為 averageUtilization
  • spec.metrics.resource.target.typeAverageValue 時,目標應為 averageValue

如要進一步瞭解如何設定 autoscaling/v2 HPA 物件,請參閱 HorizontalPodAutoscaler Kubernetes 說明文件

作業 1.28、1.29
  • 1.28.7-gke.1026000
  • 1.29.2-gke.1060000

Container Threat Detection 無法部署

如果 Autopilot 叢集執行下列 GKE 版本,Container Threat Detection 可能無法部署:

  • 1.28.6-gke.1095000 至 1.28.7-gke.1025000
  • 1.29.1-gke.1016000 至 1.29.1-gke.1781000
網路、升級 1.27、1.28、1.29、1.30
  • 1.30.4-gke.1282000 以上版本
  • 1.29.8-gke.1157000 以上版本
  • 1.28.13-gke.1078000 以上版本
  • 1.27.16-gke.1342000 以上版本

升級控制層後,hostPort Pod 發生連線問題

已啟用網路政策的叢集,可能會發生與 hostPort Pod 的連線問題。此外,新建立的 Pod 可能還需要 30 到 60 秒才能準備就緒。

當叢集的 GKE 控制層升級至下列任一 GKE 版本時,就會觸發這個問題:

  • 1.30 至 1.30.4-gke.1281999
  • 1.29.1-gke.1545000 至 1.29.8-gke.1156999
  • 1.28.7-gke.1042000 至 1.28.13-gke.1077999
  • 1.27.12-gke.1107000 至 1.27.16-gke.1341999

解決方法:

在 GKE 控制層升級後,立即升級或重建節點。

網路 1.31、1.32
  • 1.32.1-gke.1729000 以上版本
  • 1.31.6-gke.1020000 以上版本

在同一節點上執行的 Pod 之間,UDP 流量中斷

如果叢集啟用節點內瀏覽權限,在相同節點上執行的 Pod 之間,UDP 流量可能會中斷。

當 GKE 叢集節點升級至或建立於下列任一 GKE 版本時,就會觸發這個問題:

  • 1.32.1-gke.1729000 以上版本
  • 1.31.6-gke.1020000 以上版本

受影響的路徑是同一節點上透過 Hostport 或 Service 的 Pod 對 Pod UDP 流量。

解決方法

將叢集升級至下列其中一個修正版本:

  • 1.32.3-gke.1927000 以上版本
  • 1.31.7-gke.1390000 以上版本
作業 1.29、1.30、1.31
  • 1.29.10-gke.1071000 以上版本
  • 1.30.5-gke.1723000 以上版本
  • 1.31.2-gke.1115000 以上版本

Ray 運算子與 Cloud KMS 資料庫加密不相容

部分 Ray 運算子版本與 Cloud KMS 資料庫加密不相容。

解決方法:

將叢集控制層升級至固定版本或更新版本。

升級與更新 1.30、1.31
  • 1.30.8-gke.1051000 以上版本
  • 1.31.1-gke.2008000 以上版本

GPU 維護處理常式 Pod 停滯在 CrashLoopBackOff 狀態

發生這個問題時,gpu-maintenance-handler Pod 會在各自的節點上處於 `CrashLoopBackOff` 狀態。這個狀態可防止系統將 `upcoming maintenance` 標籤套用至 GKE 節點,進而影響工作負載的節點排空和 Pod 逐出程序。

"Node upcoming maintenance label not applied due to error: Node "gke-yyy-yyy" is invalid: metadata.labels: Invalid value: "-62135596800": a valid label must be an empty string or consist of alphanumeric characters, '-','' or '.', and must start and end with an alphanumeric character (e.g.'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9.]*)?[A-Za-z0-9])?')"

如果受到這個問題影響,請將控制層升級至包含修正程式的 GKE 版本,即可解決問題。

作業 1.33.1-gke.1522000 以上版本 1.33.4-gke.1142000 以上版本

啟用映像檔串流的節點無法啟動 Pod

在啟用映像檔串流的節點上,工作負載可能無法啟動,並出現以下錯誤簽章: Failed to create pod sandbox ... context deadline exceeded

受影響節點的序列埠記錄也會包含下列錯誤簽章: task gcfsd ... blocked for more than X seconds

如果出現這兩個錯誤簽章,表示其中一個圖片串流元件發生死結。這個死結會導致 Pod 無法順利啟動。

降低威脅的方法:

重新啟動節點,即可快速解決問題。請注意,重新啟動的節點可能仍會再次遇到死結。如要採取更完善的防範措施,請執行下列指令,在節點集區中停用映像檔串流功能:

gcloud container node-pools update NODE_POOL_NAME --cluster CLUSTER_NAME --no-enable-image-streaming
注意:停用映像檔串流功能後,系統會重新建立節點集區中的所有節點。

後續步驟