設定檔適用性:等級 1
使用 Container-Optimized OS (
cos_containerd) 作為受管理、優化及強化的基礎作業系統,以限制主機的攻擊面。COS 是一個針對 Compute Engine 虛擬機器優化的作業系統映像,專門用於運行容器。使用 COS,容器可以在 Google Cloud Platform
上快速、高效且安全地啟動。
使用 COS 作為節點映像具有以下優點:
- 開箱即用容器:COS 實例預先安裝了容器運行時和雲端初始化。使用 COS 實例,容器可以在虛擬機創建的同時啟動,無需在主機上進行設置。
- 較小的攻擊面:COS 佔用的資源較少,從而減少實例的潛在攻擊面。
- 預設鎖定:COS 實例預設包含鎖定的防火牆和其他安全設定。
注意以容器為優化的作業系統搭配 containerd(cos_containerd)(預設)是叢集節點映像檔的預設選項。
|
影響
如果將現有叢集的節點池修改為運行 COS,則所使用的升級操作是長時間運行的,並且會封鎖叢集上的其他操作(包括刪除),直到其完成為止。COS 節點還提供了一個選項,使用
containerd 作為主要容器運行時,直接與 Kubernetes 集成,而不是使用 docker。
因此,在這些節點上,Docker 無法查看或存取由 Kubernetes 管理的容器或映像。應用程式不應直接與 Docker 互動。對於一般疑難排解或除錯,請改用
crictl。
稽核
使用 Google Cloud 主控台:
- 前往 Kubernetes Engine,請造訪:Google Cloud Console Kubernetes Engine 頁面。
- 從叢集列表中選擇要測試的叢集。
- 在節點池部分,確保每個節點池的映像類型欄位中列出Container-Optimized OS (
cos_containerd)。
使用命令列:
要檢查現有叢集的節點池的節點映像類型,首先定義節點池、叢集名稱、位置資訊和專案的4個變數,然後執行以下命令:
gcloud container node-pools describe $NODE_POOL --cluster $CLUSTER_NAME --location $LOCATION --project $PROJECT_ID --format json | jq '.config.imageType'
如果節點映像使用
COS_CONTAINERD,則上述命令的輸出應返回以下輸出:"config": {
..
"imageType": "COS_CONTAINERD",
..
}
補救
使用 Google Cloud 主控台:
- 前往 Kubernetes Engine,請造訪:Google Cloud Console Kubernetes Engine 頁面。
- 選擇不使用 COS 的 Kubernetes 叢集。
- 在節點池標題下,選擇需要更改的節點池。
- 點擊編輯。
- 在影像類型標題下點擊更改。
- 從彈出式選單中選擇
Container-optimised OS with containerd (,然後點擊更改。cos_containerd) (default) - 對所有不合規的節點池重複此操作。
使用命令列:
將現有叢集的節點池的節點映像設置為 cos:
gcloud container clusters upgrade <cluster_name> --image-type cos_containerd --location <location> --node-pool <node_pool_name>
