iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
DevOps

k8s歷險記系列 第 5

Day5-容器通通塞這裡 pod是啥

  • 分享至 

  • xImage
  •  

什麼是pod

根據官網所說,pod是k8s中能創建和管理,最小的計算元件。
以docker的概念來說,一個pod類似一組共享命名空間(namespaces)和文件系統卷(filesystem volumes)的多個容器(container)。
通常在k8s當中,主要有兩種方式來運用pod:

  • pod運行單一容器:
    最常見的case,在這個case中,你可以將pod當成單一容器wrapper,在這種情況下,k8s與其說是管理pod不如 說是管理容器。
  • pod運行多個彼此之間需要協同工作的容器:
    一個pod內會封裝需要共享資源以及緊密協作的應用程式。
    舉例來說,其中一個容器將文件以共享卷(shared volume)的方式分享出去,同時另一個邊車(side-car)容器 刷新以及更新這些文件,而pod則將這些容器包裹成一個單獨個體。

pod的資源

從上面可知,pod是一個管理和協調內部容器的主機,可以把它看成一個虛擬機器(Virtual Machine),將容器看成在虛擬機器上運行的應用程式。
而既然要運行應用程式,那是必須要使用某種資源,實際上,容器在pod當中的確共享著兩種資源,網路(networking)和儲存卷(volume):

  1. 網路:
    在k8s中,每個pod都會分到一組專用的ip地址,也就是所謂的Pod IP,而在這個pod當中的容器則共享這些網路 資源,例如host-name,IP-address和port。
  2. 儲存卷:
    使用者會看情況給pod分配一組儲存卷(volume),在這個pod內的容器可以使用該儲存卷,藉此達到共享數據。
    同時儲存卷還可以保存這些數據,在容器重啟或被刪除後也能保證數據不遺失,達成持久化的效果。

透過對於pod的說明,可以了解pod提供容器的管理以及數據儲存和訪問管理。不過話說回來,通常在建立服務時,為了避免單點故障,常常會以複數pod來處理事務。在這種情況下,pod的數量以及健康度是怎麼管理的呢,這也是我們下一章要探討的,pod的控制器(controller)。


上一篇
Day4-叢集是在集這個 Node介紹
下一篇
Day6-控制器是在控什麼 controller說明
系列文
k8s歷險記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言