iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0

這篇主要來介紹 container 當中關於資源控管的幾個重要名詞:

  1. namespace
  2. cgroups
  3. union filesystem

a

Figure Source

namespace

在 Linux kernel 中,namespace 可以隔離各種系統資源,它使在同一個主機中能擁有不同系統資源的 container。

pid

隔離 process id。它讓 container 只能看到自己內部的 process,無法知道主機或其他 container 的 process。其中,process id 從 1 開始。

net

為每個 container 提供網路堆疊的單獨視圖,包括專屬的網路介面、路由表和防火牆規則。

值得注意的是,當網路命名空間被釋放時(即,當命名空間中的最後一個 process 終止),其實體網絡設備被移回初始網路命名空間。

mnt

隔離文件系統的掛載點。在每個容器中都有屬於自己的文件系統,其掛載資源只顯示在本身的 container 裏頭。

每個掛載命名空間實例都會看到不同的單一目錄層次結構。

ipc

用來控管各個 container 之間的通訊。

user

在此可以設置不同角色對於 container 內部資源控制的許可權。

uts

允許每個容器擁有自己的 hostname 和 domain name,獨立於其他容器和主機。

我們也可以自檢建立一個 namespace

cgroups

在 Lninux kernel 中用於限制、考慮和隔離 process 集合的資源使用方式(CPU、記憶體、磁碟 I/O、網路等)

cgroups 可以提供以下功能:

  • 資源限制: 控制特定資源的使用量,包括 CPU / Memory ...
  • 資源被使用的優先順序: 當資源使用時有衝突發生,我們可以控制誰可以使用多少資源
  • 資源監控
  • 控制 process 中 process 狀態 (frozen, stopped, restarted)

union filesystem

union filesystem 可以支援對檔案系統的修改,也可以將不同目錄掛載到同一個虛擬檔案系統下,提高儲存效率。

Reference


上一篇
[Day 1] Container / Docker / Podman
下一篇
[Day 3] Distributed system / Restful API / yaml
系列文
關於新手會想知道Kubernetes的幾件事情12
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言