本頁列出 GKE 的已知問題。本頁面適用於管理基礎技術架構生命週期的管理員和架構師,以及在服務水準目標 (SLO) 未達成或應用程式失敗時,回應快訊和頁面的使用者。
本頁列出所有支援版本的已知問題,以及延長支援中最早版本之前的兩個子版本。版本結束延長支援後,所有 N-2 問題都會移除。舉例來說,當 1.30 版的延長支援期結束時,1.28 版及更早版本的已知問題就會移除。
如果您是 Google Developer Program 成員,可以儲存這個頁面,以便在與此頁面相關的版本資訊發布時收到通知。詳情請參閱「儲存的網頁」一文。
如要依產品版本或類別篩選已知問題,請從下列下拉式選單中選取篩選條件。
選取 GKE 版本:
選取問題類別:
或者,搜尋問題:
| 類別 | 辨識出的版本 | 已修正的版本 | 問題和解決方法 |
|---|---|---|---|
| 升級與更新 |
|
叢集升級後,Agent Sandbox 工作負載失敗
自 GKE 1.36.3-gke.1767000 版起,Agent Sandbox ( 解決方法:
將叢集控制層升級至 1.36.3-gke.1767000 以上版本之前,請按照 Agent Sandbox v1alpha1 至 v1beta1 遷移指南,將 Agent Sandbox 資訊清單和工作負載從 |
|
| 作業 |
|
|
向中繼資料伺服器發出的權杖 HTTP POST 要求失敗,並傳回 400 Bad Request 錯誤
工作負載使用 Workload Identity Federation for GKE,向 GKE 中繼資料伺服器 (例如
如果應用程式、用戶端程式庫或 API 閘道傳送 HTTP 如要修正問題,請升級至任何發布管道子版本中的最新修補程式版本。 解決方法:
如要解決這個問題,請設定應用程式、用戶端程式庫或 API 閘道,在向中繼資料伺服器要求存取權或 ID 權杖時,使用 curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token"
如果工作負載使用第三方 SDK 或閘道 (例如 MuleSoft Flex Gateway、IBM App Connect 或自訂 HTTP 指令碼),且預設會將 |
| 升級與更新 |
|
待定 |
控制層進行兩步驟子版本升級期間,Pod 未排定及配額用盡。
在 Autopilot 叢集中,如果控制層使用延長時間長度的 Pod,在兩步驟子版本升級期間,系統可能會使用舊版節點佈建新的節點集區。叢集自動配置器會根據升級後的控制層版本評估新佈建的節點,偵測版本不符的情況,並套用 這項行為會導致 Pod 無法排程,並觸發無限擴充迴圈。自動佈建節點功能不會擴充現有節點集區,而是在每次擴充疊代時建立新的單一節點集區,以容納待處理的工作負載。這個迴圈會產生數百個獨立的空白節點集區,最終可能耗盡區域代管執行個體群組配額。 解決方法: 如要解決資源調度迴圈問題,請執行下列指令,手動完成控制層升級: 或者,您也可以對受影響的工作負載套用下列容忍度,以便在舊版節點上排定這些工作負載: |
| 作業 | 1.37.0-gke.2941000 以上版本 | 1.37.1-gke.1131000 |
掛接 NFS 磁碟區的節點會累積掛接項目,並停止建立容器在執行受影響版本的節點上,掛接 NFS 磁碟區會在節點的掛接資料表中留下額外項目。此外,當使用 NFS 磁碟區的 Pod 終止時,卸載嘗試會失敗,導致 當掛接表格達到核心限制時,容器執行階段就無法在該節點上建立容器。節點會停止執行新的 Pod、可能回報 在 Pod 事件和 MountVolume.SetUp failed for volume "VOLUME_NAME" : mount failed: exit status 1 mount: /etc: mount(2) system call failed: No space left on device 這個問題會影響使用 Kubernetes 內建 NFS 驅動程式掛接 NFS 磁碟區的節點集區。如果節點並非使用樹狀結構內 NFS 驅動程式掛接 NFS 磁碟區,則不受影響。 解決方法: 如要復原受影響的節點,請重新啟動或重新建立節點。額外的掛接項目只會存在於節點的執行狀態,因此會在節點重新啟動時清除。如果 Pod 在重新啟動後卡在 kubectl delete pod POD_NAME --namespace NAMESPACE --force --grace-period=0 如要避免 Standard 叢集再次發生這個問題,請將掛接 NFS 磁碟區的節點集區降級至 1.36 版本。設定維護作業排除時段,讓 GKE 不會自動將節點集區升級回受影響的版本。 如果 Autopilot 叢集執行受影響的版本,請改用下列其中一個選項:
|
| 升級 | 1.34.9-gke.1065000 以上版本、1.35.6-gke.1049000 以上版本,以及所有 1.36 修補程式版本 | 1.34.10-gke.1328000 以上版本、1.35.8-gke.1026000 以上版本、1.36.4-gke.1058000 以上版本 (1.37 版尚無修正程式) |
A4X Max (GB300) GPU 工作負載故障建立或升級 GKE A4X Max 節點集區 ( 解決方法: 將每個受影響的叢集和節點集區升級至修正版本。GKE 會禁止建立受影響版本的 A4X Max 節點集區,也不會自動將節點集區升級至受影響的版本。GKE 不會阻止手動升級至受影響的版本。不過,為避免發生錯誤,建議您不要升級至受影響的版本。 解決方法: 如果無法升級,請刪除所有執行受影響版本的 A4X Max 節點集區,並使用不受影響的舊版本重新建立節點集區。請注意,A4X Max 容量必須透過預留項目取得,因此刪除節點集區不會導致容量減少。 |
| 作業 | 1.33.5-gke.2469000 之前的 1.33 版本、1.34.1-gke.2037001 之前的 1.34 版本 | 1.33.5-gke.2469000 以上版本、1.34.1-gke.2037001 以上版本、1.35 以上版本 |
主機維護後,GPU 或 TPU 節點卡在 impending-node-termination 汙點在具有加速器節點 (GPU 或 TPU) 且執行受影響版本的 GKE 叢集上,Compute Engine 主機維護或維修作業完成後,節點可能會卡在 解決方法: 如要解決卡住狀態,您必須手動從受影響的節點中,移除 GKE 代管的主動維護標籤和污點。如果只移除污點,GKE 維護控制器會自動重新套用。 如要清除標籤和污點,請執行下列指令: kubectl label nodes NODE_NAME cloud.google.com/active-node-maintenance- kubectl label nodes NODE_NAME cloud.google.com/scheduled-maintenance-time- kubectl label nodes NODE_NAME cloud.google.com/scheduled-maintenance-time-latest- kubectl taint nodes NODE_NAME cloud.google.com/impending-node-termination- kubectl taint nodes NODE_NAME cloud.google.com/maintenance-window-started- 將 |
| 作業 |
|
1.34.1-gke.1829001 以上版本 |
回報的晶片數量有誤,導致 TPU v7 工作負載的 Pod 准入失敗。GKE 錯誤地將 2x2x1 拓撲的 TPU v7 (tpu7x) 加速器,宣傳為有八個可分配的 TPU 晶片,但實際上只有四個晶片。這項回報不一致的問題會導致 TPU v7 工作負載無法排定 Pod。 舊版無法正確處理 TPU v7 的雙晶片架構,導致 Pod 准入失敗。視要求的 TPU 資源而定,可能會發生下列錯誤:
解決方法: 如要解決這個問題,請將 GKE 叢集升級至 1.34.1-gke.1829001 以上版本。 |
| 作業 | 1.35.3-gke.1234000 以上版本 | 待定 |
Lustre 用戶端不會在多 NIC 節點上使用次要 NIC在具有多個網路介面卡 (NIC) 的 GKE 節點上,Managed Lustre CSI 驅動程式預設會啟用,使用所有可用的 NIC,將 TCP 儲存空間流量分散到各個網路介面,藉此匯總頻寬。不過,由於已知問題, 解決方法: 如果工作負載需要多 NIC 頻寬匯總功能,才能使用 Managed Lustre,請將節點集區降級至 1.35.3-gke.1234000 之前的 GKE 版本,例如 1.35.2-gke.1842000。 |
| 作業 | 1.35 以上版本 | 待定 |
重新導向至 GKE 中繼資料伺服器的流量連線逾時或連線遭拒在 GKE 1.35 以上版本中,如果工作負載使用 Workload Identity 向 Google Cloud API 進行驗證,可能會在節點啟動後,立即發生暫時性連線逾時或連線遭拒的情況。 解決方法: 如需建議和解決方法,請參閱「排解 Pod 啟動時的逾時錯誤」。 |
| 作業 | 1.33.8-gke.1026000 以上版本 | 1.35.1 以上版本 |
gVisor shim 無法清除,記錄
|
| 作業 | 1.35.0-gke.2232000 以上版本 | 1.35.3-gke.1.35.3-gke.1290000 以上版本 |
動態磁碟區會改用預設磁碟類型在 GKE 1.35.0-gke.2232000 以上版本中,使用動態磁碟區的工作負載可能無法排程或附加。這項問題也可能導致系統使用備用 這是因為 PDCSI 節點伺服器無法在 解決方法: 升級至 1.35.3-gke.1290000 以上版本。 |
| 升級與更新 |
|
|
GKE Dataplane V2 叢集升級至 GKE 1.35 時,Pod 啟動發生問題叢集將控制層從 1.35.0-gke.2232000 之前的版本升級至 1.35.0-gke.2232000 以上版本
anetd DaemonSet 推出期間,為新工作負載建立的 Pod 可能會發生啟動問題。
在
這是因為 GKE 使用運算子 identity-management-mode,這需要所有代理程式和運算子都具有身分相關標籤的同步檢視。從 GKE 1.35.0-gke.2232000 開始, 解決方法:
|
| 升級與更新 |
|
|
在啟用 Calico 網路政策的新節點上,Pod 排程作業延遲
在已啟用 Calico 網路政策的 GKE 叢集上,受影響版本中的迴歸可能會導致新節點或重新建立的節點上的 Pod 排程大幅延遲。這些延遲可能會導致節點長時間處於 這個問題是由 Calico CNI 開機指令碼造成,該指令碼會將 IPv4 位址括在方括號 ([]) 中,導致 Kubernetes API 伺服器網址格式不正確。這種做法會導致在建立新的 Pod 沙箱時發生網址剖析錯誤,並顯示在「kubelet」記錄中:
解決方法: Calico 元件版本取決於叢集的控制層版本。如要緩解這個問題,請將叢集的控制層升級至其中一個修正版本。升級控制層後,您必須在節點集區中重新建立節點,確保節點使用正確的 Kubernetes API 伺服器網址格式。如要這麼做,請將節點集區就地升級至相同或更新的版本,或手動重新建立節點集區。 |
| 效能 |
|
|
A 系列和 G4 GPU 機型的一般用途網路效能下降在 GKE 1.32.8-gke.1134000 以上版本 (適用於 GKE 1.32) 和 GKE 1.33.3-gke.1392000 以上版本中,具有 A 系列和 G4 GPU 節點的 GKE 叢集,一般用途網路效能會降低。一般用途網路效能降低,會影響 GPU 機型,包括 A3、A4、A4X 和 G4 機器系列。請注意,A3 Mega 的 GPUDirect-TCPXO,以及 A3 Ultra、A4 和 A4X 的 GPUDirect-RDMA 不受影響。 這是因為設定中斷親和性的節點層級指令碼 ( 解決方法: 將每個受影響的節點集區升級至已修正的版本。 |
| 效能 |
|
|
GPUDirect-TCPX 在 A3 High 的效能下降在 GKE 1.32.8-gke.1134000 以上版本 (適用於 GKE 1.32) 和 GKE 1.33.3-gke.1392000 以上版本,使用 GPUDirect-TCPX 時,具有 A3 High ( 這是因為設定中斷親和性的節點層級指令碼 ( 解決方法: 如果是 GKE 1.32 節點集區,請將 GKE 節點集區版本升級至 1.32.11-gke.1075000 以上版本。如果是 GKE 1.33 以上版本的節點集區,請將 GKE 節點集區版本升級至 1.33.5-gke.2392000 以上版本。如果是 GKE 1.34 節點集區,請參閱「GPUDirect-TCPX 不適用於 GKE 1.34 以上版本的 A3 High」。 |
| 升級 | 1.35 |
1.35.0-gke.2232000 以上版本。 |
GKE Dataplane V2 叢集中的 Cilium 身分重複如果 GKE 叢集執行 1.35 版,且已啟用 GKE Dataplane V2, 在區域和可用區叢集中,排定新的工作負載可能會導致 Cilium 身分暫時重複。之所以會重複,是因為 Pod 在建立時會根據初始標籤取得一個身分,在排定至節點後,又會根據新增的拓撲標籤取得另一個身分。在區域叢集中,身分數量可能會額外增加,增加幅度與叢集涵蓋的可用區數量成正比。 影響: 如果身分總數超過 65,535 個,系統可能無法排定新的工作負載。 解決方法: 如要限制身分總數,請避免在 Pod 中新增含有大量不重複值的標籤。 詳情請參閱下列 Cilium 說明文件: 手動升級應從 1.34.3-gke.1208000 以上版本執行。如果從 1.34.3-gke.1208000 之前的版本開始升級,升級期間可能會暫時發生 Pod 排程問題。 |
| 升級 |
|
此外,您必須使用 GPUDirect-TCPX 安裝程式 3.1.9 以上版本,以及 Sidecar 2.0.12 以上版本。安裝程式和 sidecar 版本有一對一的對應關係,且必須相互對應。舉例來說,GPUDirect-TCPX 安裝程式 3.1.12 版對應至 Sidecar 2.0.15 版。如要進一步瞭解安裝程式和 Sidecar 版本,請參閱 GPUDirect-TCPX 版本資訊。 |
特定 GKE 版本的 A3 High 不支援 GPUDirect-TCPX具備 A3 High ( 其他 A3 High ( 解決方法: 請升級至已修正問題的 GKE 版本修補程式,解決這項問題。如要瞭解如何設定及升級採用 GPUDirect-TCPX 的節點集區,請參閱「在 Standard 叢集中盡可能提高 GPU 網路頻寬」或「在 Autopilot 叢集中盡可能提高 GPU 網路頻寬」。 在固定版本上執行 NCCL 測試時,您可能會看到下列警告,但這不會影響效能或功能:
|
| 作業 | 1.34.0-gke.2285000 之前的所有版本 | 1.34.0-gke.2285000 以上版本 |
更新執行個體容量下限Managed Lustre 執行個體的容量下限已更新為 9000 GiB。如果叢集執行的版本早於 1.34.0-gke.2285000,就無法透過 Managed Lustre CSI 驅動程式,建立容量下限為 10 TiB 的執行個體。 解決方法: 將叢集升級至 1.34.0-gke.2285000 以上版本,即可建立容量至少 9000 GiB 的 Managed Lustre 執行個體。 |
| 作業 | 所有版本 | 待定 |
節點自動修復期間,Cloud de Confiance 控制台 UI 無法編輯GKE 節點自動修復期間,由於作業正在進行,因此無法透過 Cloud de Confiance 控制台編輯節點集區。 解決方法: 您仍可使用 gcloud CLI 指令編輯節點集區設定。 |
| 作業 | 1.33.4-gke.1036000 之前的 1.33 版本 | 1.33.4-gke.1036000 以上版本 |
動態佈建 Lustre 執行個體的效能級別不正確動態佈建 Lustre 執行個體時,無論 API 要求中指定的 perUnitStorageThroughput 值為何,執行個體建立作業都會失敗,並顯示 PerUnitStorageThroughput 的 解決方法: 將 GKE 叢集升級至 1.33.4-gke.1036000 以上版本。如果使用穩定版,可能還沒有新版本。在這種情況下,您可以從一般版或搶鮮版,手動選取包含修正程式的版本。 |
| 作業 |
|
1.33.3-gke.1266000 以上版本 |
使用 Cloud Storage FUSE CSI 驅動程式重新命名或移動檔案時,發生輸入/輸出錯誤使用受影響版本的 Cloud Storage FUSE CSI 驅動程式時,重新命名或移動 Cloud Storage bucket 中的檔案可能會失敗,並顯示 I/O 錯誤。 解決方法: 暫時在 Pod 資訊清單中新增特定 sidecar 映像檔定義。在 Pod 資訊清單的 # 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 詳情請參閱「為邊車容器設定私人映像檔」中的 Pod 資訊清單。 將叢集升級至修正後的 GKE 版本或更新版本後,您必須從資訊清單中移除整個 |
| 記錄和監控 | 所有版本 | 待定 |
|
| 升級 | 1.33 | 1.33.2-gke.1043000 |
containerd 2.0 降低開啟檔案數量上限如果節點集區執行的 GKE 版本為 1.33 (使用 containerd 2.0),容器開啟檔案 ( 這是 containerd 本身的變更 (請參閱 containerd PR #8924),其中 如果工作負載預期預設軟限制較高 (例如隱含依賴先前較高的預設值),可能會發生失敗,例如 解決方法: 從 1.33 之前的修補程式版本升級至 1.33.2-gke.1043000 以上版本。 解決方法: 請使用下列任一方法,提高工作負載的開啟檔案數量上限:
|
| 升級 | 1.31.5-gke.1169000、1.32.1-gke.1376000 | 1.31.7-gke.1164000、1.32.3-gke.1512000 |
代管 CRD 的 CRD status.storedVersions 無效部分 GKE 代管的 CRD 可能含有無效的 這個問題會影響同時符合下列條件的叢集:
解決方法: 建議您延後叢集升級,直到問題解決為止。 或者,如果您知道叢集包含不支援的 CRD 物件版本,可以使用 |
| 作業、記錄和監控 | 1.32.2-gke.1652000、1.31.6-gke.1221000、1.30.10-gke.1227000 |
|
缺少指標或工作負載自動配置器未調度資源叢集大小增加超過五個節點後,受影響版本的指標資料可能會出現落差。這項問題也可能影響自動調度資源作業。 只有升級至受影響版本的叢集會發生這個問題。新建立的叢集應可正常運作。 解決方法: 如果受到影響,可以降級一個修補程式版本,或升級至較新的修正版本。 |
| 作業 |
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 效能限制」。 解決方法: Google Cloud Hyperdisk 產品會觸發其他 VM 類型的自動佈建功能。建議您選用僅支援 Google Cloud 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 |
gke-metadata-server 在 TPU/GPU 節點上因記憶體不足而終止在 GKE TPU 節點 (例如 解決方法: 如果您在 TPU 或 GPU 節點上觀察到 |
|
| 作業 |
|
|
PVC 上的 NodePendingResize 狀態懸而未決,可能導致磁碟區大小調整作業停滯。如果叢集為 1.32 版,但節點為 1.31 以下版本,則調整大小時無法更新 PersistentVolumeClaim 狀態。這個錯誤狀態會導致後續的調整大小作業無法開始,進而阻止進一步調整大小。 處於這個狀態的 PVC 會有 如果 PVC 是在叢集使用受影響版本時建立,那麼即使叢集升級至已知修正版本,這個問題仍可能持續發生。在這種情況下,您必須修補 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}}' |
| 作業 |
|
|
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")
|
| 作業 |
|
|
如果 Pod 嘗試在先前具有唯讀 (RO) 掛接的 COS 節點上掛接 NFS 永久磁碟區,則只會以 RO 模式掛接在 GKE 1.27 以上版本中,使用 Kubernetes 樹狀結構內 CSI 驅動程式的 NFS 磁碟區,只有在同一個節點上先前有 RO 掛接時,才能以 RO 模式掛接永久磁碟區。 解決方法: 將節點集區降級至受影響版本之前的版本 |
| 作業 |
|
如果 Pod 嘗試在 Ubuntu 節點上掛接 NFS 永久磁碟區,將無法執行。在 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.1369000 |
|
使用 io_uring 相關系統呼叫的 Pod 可能會卡在「Terminating」(終止中) 狀態
由於 Linux 核心中的錯誤,使用 io_uring 相關系統呼叫的 Pod 可能會進入 D (磁碟休眠) 狀態,也稱為 TASK_UNINTERRUPTIBLE。處於 D 狀態的程序無法透過信號喚醒,包括
如果 Pod 受到這個已知問題影響,容器可能無法正常終止。在 containerd 記錄中,您可能會看到類似下列的重複訊息:
或
這些症狀表示容器內的程序卡在不可中斷的休眠狀態 (D 狀態),導致 Pod 無法正常終止。
直接使用 io_uring 的工作負載,或透過 NodeJS 等語言執行階段間接使用 io_uring 的工作負載,可能會受到這項已知問題影響。受影響的工作負載在 解決方法: 將叢集節點升級至修正版本或更新版本。 |
| 作業 | 1.28、1.29、1.30、1.31 |
|
使用映像檔串流的工作負載因驗證錯誤而失敗映像檔串流功能中的錯誤,可能會導致容器讀取檔案時,在符合一組特定條件的情況下,工作負載失敗。與驗證失敗相關的錯誤訊息可能會顯示在 gcfsd 記錄中。
如要確認是否受到影響,請使用下列搜尋查詢來搜尋記錄:
如果出現這些錯誤,表示節點受到影響。 如果受到這個問題影響,可以 將節點集區升級至已修補的 GKE 版本。 |
| 作業 |
|
|
GKE 1.30 和 1.31 版的 Pod 淘汰率提高
部分 GKE 1.30 和 GKE 1.31 版本分別使用 COS 113 和 COS 117,其核心是以
cos-113-18244-151-96 和 cos-117-18613-0-76 已停用設定選項 Pod 淘汰率不一定會異常,因為這個問題取決於工作負載的記憶體用量模式。 如果工作負載未在資源欄位設定記憶體限制,kubelet 更有可能剔除 Pod。 這是因為工作負載要求的記憶體,可能超過 kubelet 回報的可用記憶體。 如果升級至上述 GKE 版本後,應用程式的記憶體用量增加,但沒有其他變更,則可能受到核心選項影響。
如要檢查 Pod 淘汰率是否異常,請使用 Metrics Explorer 分析下列指標:
您可以使用下列 PromQL 查詢。將
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 停用多代 LRU 選項。
DaemonSet 在所有選取的節點集區中執行後,變更會立即生效,kubelet 記憶體用量計算也會恢復正常。 |
| 作業 | 1.28、1.29、1.30、1.31 |
|
Pod 卡在「終止中」狀態容器執行階段 (containerd) 中的錯誤可能會導致 Pod 和容器卡在「Terminating」狀態,並出現類似下列的錯誤: OCI runtime exec failed: exec failed: cannot exec in a stopped container: unknown
如果受到這個問題影響,可以 將節點升級至 GKE 版本,其中包含已修正的 containerd 版本。 |
| 作業 |
|
|
因符號連結而無法串流映像檔映像檔串流功能中的錯誤可能會導致容器無法啟動。 在特定 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.35.6-gke.1005000 以上版本,或 1.36.0-gke.2459000 以上版本)。 如果無法升級,可以 檢查是否有空白層或重複層。如果無法移除空白層或重複層,請停用映像檔串流。 |
| 作業 | 1.27,1.28,1.29 |
|
缺少檔案,因此無法串流映像檔映像檔串流功能中的錯誤可能會導致容器因缺少一或多個檔案而失敗。 在下列版本中,如果節點已啟用映像檔串流功能,在該節點上執行的容器可能無法啟動,或是在執行時發生錯誤,指出特定檔案不存在。以下是這類錯誤的範例:
如果受到這個問題影響,可以停用映像檔串流。 |
| 網路,升級與更新 | 1.28 |
閘道 TLS 設定錯誤我們發現,在執行 GKE 1.28.4-gke.1083000 版的叢集中,為閘道設定 TLS 時會發生問題。這會影響使用 SSLCertificate 或 CertificateMap 的 TLS 設定。如果升級的叢集已有閘道,系統將無法更新閘道。如果是新的閘道,系統不會佈建負載平衡器。這個問題將在日後的 GKE 1.28 修補程式版本中修正。 |
|
| 升級與更新 | 1.27 | 1.27.8 以上版本 |
GPU 裝置外掛程式問題
如果叢集執行 GPU,且從 1.26 升級至 1.27 修補程式版本 (早於 1.27.8),節點的 GPU 裝置外掛程式 (
|
| 作業 | 1.27,1.28 |
|
所有工作負載都會停止自動調度資源
如果叢集包含設定錯誤的 解決方法:
請確認
如要進一步瞭解如何設定 |
| 作業 | 1.28,1.29 |
|
無法部署 Container Threat Detection如果 Autopilot 叢集執行下列 GKE 版本,Container Threat Detection 可能無法部署:
|
| 網路、升級 | 1.27、1.28、1.29、1.30 |
|
控制層升級後,
|
| 網路 | 1.31、1.32 |
|
在同一節點上執行的 Pod 之間,UDP 流量中斷如果叢集已啟用節點內瀏覽功能,在相同節點上執行的 Pod 之間,UDP 流量可能會中斷。 當 GKE 叢集節點升級至或建立為下列任一 GKE 版本時,就會觸發這個問題:
受影響的路徑是透過 Hostport 或 Service,在同一節點上的 Pod 對 Pod UDP 流量。 解決方式 將叢集升級至下列其中一個修正版本:
|
| 作業 | 1.29、1.30、1.31 |
|
Ray Operator 與 Cloud KMS 資料庫加密不相容部分 Ray Operator 版本與 Cloud KMS 資料庫加密不相容。 解決方法: 將叢集控制層升級至修正版本或更新版本。 |
| 升級與更新 | 1.30、1.31 |
|
GPU 維護處理常式 Pod 卡在 CrashLoopBackOff 狀態發生這個問題時,gpu-maintenance-handler Pod 會在各自的節點上卡在「CrashLoopBackOff」狀態。這個狀態會導致 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 無法啟動
在啟用映像檔串流的節點上,工作負載可能無法啟動,並顯示下列錯誤簽章:
受影響節點的序列埠記錄也包含下列錯誤簽章:
如果出現這兩個錯誤簽章,表示其中一個映像檔串流元件發生死結。這個死結會導致 Pod 無法順利啟動。 緩解措施: 重新啟動節點,快速緩解問題。請注意,重新啟動的節點可能仍會再次發生死結。如要採取更強大的緩解措施,請執行下列指令,停用節點集區的映像檔串流功能: gcloud container node-pools update NODE_POOL_NAME --cluster CLUSTER_NAME --no-enable-image-streaming |
| 作業 |
|
|
自訂 ComputeClass 含有
|
後續步驟
如果說明文件無法解決您的問題,請參閱「取得支援」一文,進一步瞭解如何取得協助,包括下列主題的建議:
- 與 Cloud Customer Care 聯絡,建立客服案件。
- 在 StackOverflow 提問,並使用
google-kubernetes-engine標記搜尋類似問題,向社群尋求支援。您也可以加入#kubernetes-engineSlack 頻道,取得更多社群支援。 - 使用公開 Issue Tracker 提出問題或功能要求。