本頁面說明 Google Kubernetes Engine (GKE) 節點可用的節點映像檔。
GKE Autopilot 節點一律會使用 Container-Optimized OS with containerd (cos_containerd),這是建議使用的節點作業系統。如果您使用 GKE Standard,可以在建立叢集或節點集區時,選擇要在各節點上執行的作業系統映像檔。您也可以升級現有的 Standard 叢集,改用其他節點映像檔。如需如何設定節點圖片的操作說明,請參閱「指定節點圖片」。
可用的節點映像檔
GKE 為叢集提供下列作業系統的節點映像檔選項:
| OS | 節點映像檔 |
|---|---|
| Container-Optimized OS | |
| Ubuntu | |
| Windows Server |
|
Container-Optimized OS
Google 的 Container-Optimized OS 節點映像檔以最新版 Linux 核心為基礎,並經過最佳化,可提升節點安全性。Container-Optimized OS 映像檔由 Google 團隊提供支援,可快速修補映像檔以確保安全性,並疊代功能。Container-Optimized OS 映像檔比其他映像檔更穩定,且支援和安全防護機制更完善。
如要瞭解映像檔專案和系列,請參閱「節點映像檔來源專案」。
Container-Optimized OS 變體
您可以使用下列 Container-Optimized OS 映像檔:
- 採用 containerd 的 Container-Optimized OS (
cos_containerd):cos_containerd映像檔使用 containerd 做為容器執行階段,直接與 Kubernetes 整合。GKE Autopilot 叢集一律使用這個映像檔。詳情請參閱「Containerd 節點映像檔」。
Ubuntu
Ubuntu 節點映像檔已通過 GKE 節點映像檔規定驗證。如果節點需要支援 XFS、CephFS 或 Debian 套件,請使用 Ubuntu 節點映像檔。
如要瞭解圖片專案和系列,請參閱「依作業系統劃分的功能支援」。
Ubuntu 變體
您可以使用下列 Ubuntu 映像檔:
- 採用 containerd 的 Ubuntu (
ubuntu_containerd):ubuntu_containerd映像檔使用 containerd 做為容器執行階段。詳情請參閱「Containerd 節點映像檔」。
Windows Server
使用 Windows Server 節點集區建立叢集時,您可以使用 Windows Server 長期維護通道 (LTSC) 節點映像檔。這個 Windows 節點映像檔是 Windows Server Datacenter Core 映像檔。單一叢集可以有多個 Windows Server 節點集區,使用不同的 Windows Server 版本,但每個節點集區只能使用一個 Windows Server 版本。詳情請參閱「選擇 Windows 節點映像檔」。
您可以使用下列 Windows Server 映像檔:
- 採用 containerd 的 Windows Server LTSC (
windows_ltsc_containerd):windows_ltsc_containerd映像檔使用 containerd 做為容器執行階段。目前,這個映像檔類型會對應至兩個節點映像檔:Windows Server 2022 和 Windows Server 2019。您可以使用 gcloud CLI 指令搭配windows-os-version旗標,建立 Windows LTSC2022 節點集區。
如要進一步瞭解如何建立 Windows Server 2022 節點集區,請參閱「建立 Windows 節點集區」。
如要進一步瞭解 containerd 節點映像檔,請參閱「Containerd 節點映像檔」。
如要瞭解映像檔專案和系列,請參閱「各作業系統支援的功能」。
Linux 節點映像檔比較
下列各節會比較 Container-Optimized OS 和 Ubuntu 節點映像檔的作業部分,包括:
- 軟體套件管理
- 系統初始化
- 記錄收集
- 檔案系統版面配置
- 儲存空間驅動程式支援
軟體套件管理工具
cos 和 cos_containerd 節點映像檔使用最小的根檔案系統,內建支援 Docker (containerd) 容器執行階段,該執行階段也做為軟體套件管理工具,用於在主機上安裝軟體。Ubuntu 映像檔使用 APT 套件管理員。
管理 Container-Optimized OS 上的軟體
Container-Optimized OS 映像檔並不提供套件管理軟體,例如 apt-get。您無法利用傳統的機制在節點上任意安裝軟體,而是要建立包含所需軟體的容器映像檔。
在僅供偵錯的標準叢集上,Container-Optimized OS 包含 CoreOS Toolbox,可安裝及執行常見的偵錯工具,例如 ping、psmisc 或 pstree。如要進一步瞭解如何對 Container-Optimized OS 節點進行偵錯,請參閱 Container-Optimized OS 操作指南。
管理 Ubuntu 上的軟體
Ubuntu 映像檔使用 APT 套件管理工具。您可以使用 apt-get
指令,在這些映像檔上安裝套件。例如,如要安裝 ceph 套件:
sudo apt-get update
sudo apt-get install ceph
系統初始化
在系統初始化的過程中,Container-Optimized OS 和 Ubuntu 節點映像檔都使用 systemd 管理系統資源及服務。
兩個節點映像檔都使用 systemd 服務檔案定義節點上的 services,並使用 systemd.targets 透過依附元件將啟動目標分組。
記錄收集
Container-Optimized OS 和 Ubuntu 節點映像檔會使用 systemd-journald 收集系統層級的記錄。
檢視 Container-Optimized OS 及 Ubuntu 上的記錄檔
如要在使用 Container-Optimized OS 或 Ubuntu 節點映像檔的節點上查看記錄,請務必使用 journalctl 指令。例如,如要查看 containerd 守護程序記錄,請執行下列指令:
sudo journalctl -u containerd
如要查看 kubelet 記錄:
sudo journalctl -u kubelet
檔案系統版面配置
Ubuntu 節點映像檔使用標準 Linux 檔案系統版面配置。
Container-Optimized OS 節點映像檔檔案系統版面配置經過最佳化,可強化節點安全性。開機磁碟空間分成三種分區類型:
- 根分區,以唯獨模式掛接
- 有狀態分區,可寫入且為有狀態
- 無狀態分區,可寫入但內容在重新開機後即會遺失
使用 Container-Optimized OS 時,如果您執行的自用服務對於容器外部的檔案系統版面配置有特定要求,則請留意分區類型。
使用 Container-Optimized OS 檔案系統
以下列出 Container-Optimized OS 節點映像檔系統中的路徑,以及這些路徑的屬性和建議用途:
| 路徑 | 屬性 | 用途 |
|---|---|---|
| / |
|
根檔案系統會以唯讀模式掛接,以維持自己的完整性。核心會在啟動期間驗證根檔案系統的完整性,並在發現錯誤時拒絕啟動。 |
| /home /var |
|
這些路徑是用來儲存會在開機磁碟的生命週期內持續存在的資料。這些磁碟區是從 /mnt/stateful_partition 掛接。 |
| /var/lib/google /var/lib/docker /var/lib/toolbox |
|
這些路徑分別是 Compute Engine 套件 (例如帳戶管理員服務)、Docker 和 Toolbox 的工作目錄。 |
| /var/lib/cloud |
|
這個路徑是 cloud-init 套件目前使用的目錄。 |
| /etc |
|
通常會保留您的設定 (例如透過 cloud-init 定義的 systemd 服務)。建議您在 cloud-init 中擷取執行個體的所需狀態,因為系統會在新建執行個體和重新啟動執行個體時套用 cloud-init。 |
| /tmp |
|
通常用做暫存空間,不應儲存永久性資料。 |
| /mnt/disks |
|
您可以在 /mnt/disks 下方的目錄中掛接永久磁碟。 |
儲存空間驅動程式支援
每個節點映像檔支援的儲存空間外掛程式種類都有所不同。下列詞彙可用來說明節點映像檔對特定儲存空間驅動程式的支援狀態:
- 是 - 全面測試/支援:這個儲存空間外掛程式受到完整支援,且系統已使用指定節點映像檔進行全面測試。
- 是 - 有限測試:這個儲存空間外掛程式可與指定節點映像檔搭配使用,但並未經過全面測試,且可能會發生意外行為。在 Container-Optimized OS 中,系統最終會為這些外掛程式進行全面測試並提供完整支援。
- 不支援:這個儲存空間外掛程式未經過測試,也未曾與指定的節點映像檔搭配使用,且 GKE 無法提供任何功能保證。目前沒有任何有關這個儲存空間外掛程式的測試計劃。
- 否:由於節點 OS 或 Google Cloud固有的限制,這個儲存空間外掛程式無法與指定的節點映像檔搭配使用。
下列矩陣說明每個 GKE 節點映像檔如何支援一些常用的儲存空間外掛程式。
| 磁碟區類型 | 是否可在 Container-Optimized OS (cos) 中運作? |
是否可在 Ubuntu 中運作? |
|---|---|---|
| Compute Engine 永久磁碟 (EXT4 或 XFS) |
是 - 已全面測試/支援 (僅 cos-85 以上版本支援 XFS)。請參閱 GKE 版本資訊。 | 是 - 全面測試/支援 |
| NFSv3 | 是 - 全面測試/支援 | 是 - 全面測試/支援 |
| NFSv4 | 是 - 全面測試/支援 | 是 - 全面測試/支援 |
| CephFS | 否 | 是 - 有限測試 (根據預設,系統不會安裝驅動程式,因此您必須安裝 ceph 用戶端,我們建議您透過 DaemonSet 來進行)。 |
| Cinder | 否 | 否 |
| 光纖通道 | 否 | 否 |
| Flocker | 不支援 | 不支援 |
| iSCSI | 否 | 否 |
| RBD | 否 | 否 |
時間同步處理
Container-Optimized OS 和 Ubuntu 節點映像檔都使用內部網路時間通訊協定 (NTP) 伺服器做為主要時間來源。這個內部 NTP 伺服器的潤秒方式與 Google 公用 NTP 相同。
如果內部 NTP 伺服器無法使用,Container-Optimized OS 和 Ubuntu 節點映像檔都會使用即時時鐘 (RTC) (主體機器的硬體時鐘) 做為備份時間來源。
隨機產生號碼
在 Container-Optimized OS 和 Ubuntu 節點中,Pod 都能存取 /dev/random 和 /dev/urandom 檔案。這些檔案會提供隨機數字,這些數字是由 Compute Engine 執行個體產生的熵集區提供給 Virtio RNG。
修改節點 VM
重新建立節點後,對該節點 VM 開機磁碟所做的修改便會失效。系統會在手動升級、自動升級、自動修復和自動調整資源配置的期間重新建立節點。此外,當您啟用需要重新建立節點的功能 (例如 GKE Sandbox、節點內瀏覽權限和受防護的節點) 時,系統也會重新建立節點。
如要讓節點在重新建立之後沿用您之前所做的修改,請使用 DaemonSet。
不建議管理節點映像檔提供的重大軟體,例如核心或容器執行階段。節點映像檔經過廣泛測試,修改節點映像檔中提供的重大軟體會使節點進入未知且無法測試的狀態。GKE Autopilot 節點不允許修改節點軟體。
將 Container-Optimized OS 節點映像檔版本對應至 GKE 修補程式版本
GKE 會發布 GKE 修補程式版本對應至 Container-Optimized OS 節點映像檔版本的 JSON 檔案:
您可以透過這個對應表升級至特定版本的 GKE,取得特定映像檔版本。舉例來說,如果叢集需要特定功能或修正程式,您可以找出對應項目,然後將叢集升級至特定 GKE 版本,取得含有變更的 Container-Optimized OS 映像檔版本。如要瞭解 Container-Optimized OS 映像檔發布版本詳情,請參閱 Container-Optimized OS 發布說明。
這份清單大約每週更新一次。如要查看資訊的新鮮度,請參閱 JSON 檔案中的 creation_time 欄位。
節點映像檔版本資訊
Container-Optimized OS
Google 提供內容詳盡的 Container-Optimized OS 說明文件:
Ubuntu
Google 會定期更新適用於叢集節點的 Ubuntu 映像檔。請參閱版本資訊以取得這些更新的相關資訊,包括列出預設安裝套件的資訊清單連結。
節點映像檔來源專案
GKE 叢集的可用節點映像檔包含在下列來源專案中:
- Container-Optimized OS 映像檔:
gke-node-images - Ubuntu 映像檔:
ubuntu-os-gke-cloud和gke-ubuntu-node-images - Windows Server 映像檔:
gke-windows-node-images
除了上述來源專案,GKE 也會使用下列來源專案,供 GKE 團隊專屬使用:
ubuntu-os-gke-cloud-private(保留供 GKE 團隊專用)ubuntu-os-gke-cloud-devel(保留供 GKE 團隊專用)
設定高安全性叢集時,您可能需要知道來源專案名稱。列出的來源專案可能會變更。
後續步驟
- 瞭解如何在 GKE 節點使用 containerd。
- 瞭解如何為 GKE Standard 叢集中的節點指定節點映像檔。
- 瞭解如何在 GKE Standard 節點集區中規劃節點大小。
- 進一步瞭解節點集區。