節點映像檔

本頁面說明適用於 Google Kubernetes Engine 節點的節點映像檔。如要瞭解如何選擇節點映像檔,請參閱指定節點映像檔

總覽

建立 GKE 叢集或節點集區時,您可以選擇要在每個節點上執行的作業系統映像檔。您也可以升級現有的叢集,以使用不同的節點映像檔類型。

可用的節點映像檔

GKE 為您的叢集提供下列節點映像檔選項:

Container-Optimized OS

Container-Optimized OS 節點映像檔會以最新版本的 Linux kernel 為依據,且已經過最佳化處理,可協助提升節點安全性。在 Google 團隊的支援下,這個映像檔可以快速修補以確保安全性,相關功能日後也會不斷更新。Container-Optimized OS 映像檔提供的支援比其他映像檔更加完善,而安全性和穩定性也更勝一籌。

含有 containerd (cos_containerd) 的 Container-Optimized OS

Containerd 是 Docker 的重要基石,也是執行階段的核心元件。 cos_containerd 是 Container-Optimized OS 映像檔的子類,其中 containerd 可做為直接與 Kubernetes 整合的主要容器執行階段。

若要在節點上執行除錯或疑難排解,您可以使用專為 Kubernetes 容器執行階段所建構的可攜式指令列工具 (crictl) 與 containerd 進行互動。crictl 支援查看容器和映像檔、讀取記錄,以及在容器中執行指令的常用功能。如需完整的支援功能和使用資訊,請參閱 crictl 使用手冊

cos_containerd 需搭配「Kubernetes 1.11.0 版」或更高版本使用。

詳情請參閱使用含有 containerd 的 Container-Optimized OS

Ubuntu

Ubuntu 節點映像檔已經過驗證,符合 GKE 節點映像檔的條件。如果節點需要支援 XFS、CephFS 或 Debian 套件,您就應該使用 Ubuntu 節點映像檔。

節點映像檔比較

下列各節會比較 Container-Optimized OS 和 Ubuntu 節點映像檔的作業部分,包括:

  • 軟體套件管理
  • 系統初始化
  • 記錄收集
  • 檔案系統版面配置
  • 儲存空間驅動程式支援

軟體套件管理員

coscos_containerd 節點映像檔使用內建 Docker (containerd) 容器執行階段支援的最小根檔案系統;該檔案系統也可做為軟體套件管理員,用來管理在主機上安裝的軟體。Ubuntu 映像檔使用 Aptitude 套件管理員

在 Container-Optimized OS 上管理軟體

您不能在使用 Container-Optimized OS 映像檔的主機 (亦即,在容器外部) 上安裝軟體套件,而且也無法單獨升級軟體套件。不過,Container-Optimized OS 節點映像檔包含一些常用的除錯工具,並提供 toolbox 包裝函式以執行您選擇的除錯工具。以下是幾個例子:

sudo toolbox ping www.google.com
sudo toolbox apt-get install psmisc
sudo toolbox pstree -p

如需其他範例以瞭解如何使用包裝函式在含有 cos 節點映像檔的主機上安裝額外軟體,請參閱 Container-Optimized OS 使用指南

在 Ubuntu 上管理軟體

Ubuntu 映像檔已預先安裝了 Aptitude 套件管理員。您可以使用 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 指令。例如,如要查看 Docker daemon 記錄:

sudo journalctl -u docker

如要查看 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/cloud
/var/lib/docker
/var/lib/kubelet
/var/lib/toolbox
  • 可寫入
  • 可執行
  • 有狀態
這些路徑分別是 Compute Engine 套件 (例如帳戶管理員服務)、cloud-init、Docker、Kubelet 及工具箱的工作目錄。
/etc
  • 可寫入
  • 不可執行
  • 無狀態
  • tmpfs
/etc 通常會儲存您的設定 (例如,透過 cloud-init 定義的 systemd)。建議您以 cloud-init 擷取所需的執行個體狀態,因為在剛建立及重新啟動執行個體時會套用 cloud-init
/tmp
  • 可寫入
  • 不可執行
  • 無狀態
  • tmpfs
/tmp 通常是做為臨時儲存空間使用,不得用來儲存持續性資料。
/mnt/disks
  • 可寫入
  • 可執行
  • 無狀態
  • tmpfs
您可以在 /mnt/disks 底下的目錄中掛接永久磁碟。

儲存空間驅動程式支援

每個節點映像檔支援的儲存空間外掛程式種類都有所不同。下列詞彙可用來說明節點映像檔對特定儲存空間驅動程式的支援狀態:

  • 是 - 全面測試/支援:這個儲存空間外掛程式受到完整支援,且系統已使用指定節點映像檔進行全面測試。
  • 是 - 有限測試:這個儲存空間外掛程式可與指定節點映像檔搭配使用,但並未經過全面測試,且可能會發生意外行為。在 Container-Optimized OS 中,系統最終會為這些外掛程式進行全面測試並提供完整支援。
  • 不支援:這個儲存空間外掛程式未經過測試,也未曾與指定的節點映像檔搭配使用,且 GKE 無法提供任何功能保證。目前沒有任何有關這個儲存空間外掛程式的測試計劃。
  • :由於節點 OS 或 Google Cloud Platform 的固有限制,這個儲存空間外掛程式無法與指定的節點映像檔搭配使用。

下列矩陣說明每個 GKE 節點映像檔如何支援一些常用的儲存空間外掛程式。

磁碟區類型 是否可在 Container-Optimized OS (cos) 中運作? 是否可在 Ubuntu 中運作?
Google Compute Engine
永久磁碟 (EXT4 或 XFS)
是 - 全面測試/支援
(不支援 XFS。)
是 - 全面測試/支援
GlusterFS 是 - 全面測試/支援
(不支援 XFS。)
是 - 全面測試/支援
NFSv3 是 - 全面測試/支援 是 - 全面測試/支援
NFSv4 是 - 全面測試/支援 是 - 全面測試/支援
CephFS 是 - 有限測試
(根據預設,不安裝驅動程式。您必須安裝 ceph 用戶端,最好是透過 DaemonSet。)
Cinder
光纖通道
Flocker 不支援 不支援
iSCSI
RBD

修改節點 VM

重新建立節點後,對該節點 VM 開機磁碟所做的修改便會失效。系統會在 [手動升級]、[自動升級]、[自動修復] 和 [自動調整資源配置] 期間重新建立節點。如要讓重新建立的節點沿用原有變更,請使用 DaemonSet

我們不建議您管理節點映像檔提供的重要軟體,例如 kernel 或容器執行階段 (無論是 containerddocker)。節點映像檔皆經過全面測試,任意修改節點映像檔中提供的重要軟體會造成節點狀態不明且無法測試。

節點映像檔版本資訊

Container-Optimized OS

Google 提供內容詳盡的 Container-Optimized OS 說明文件:

Ubuntu

Google 會定期更新適用於叢集節點的 Ubuntu 映像檔。請參閱版本資訊以取得這些更新的相關資訊,包括列出預設安裝套件的資訊清單連結。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Kubernetes Engine 說明文件