Kubernetes家族容器小管家Pod在線答疑?
不知道學習k8s的小伙伴們有沒有跟我一樣的疑問?
k8s為什么不是直接運行容器,而是讓Pod介入?
Pod又是什么?為什么在應用容器化如此普遍的情況下k8s要推出Pod概念?

小葵花Pod課堂開課啦
本文主要理解的一個核心點,什么是Pod?我們先不關注Pod怎么使用,怎么調度,如何實作最佳實踐,這些問題后續繼續討論,在不懂為什么k8s要有Pod的情況下,去先深究最佳實踐沒有實際意義,
囧么肥事-k8s專場


Pod官方定義
Pod 是可以在 Kubernetes 中創建和管理的、最小的可部署的計算單元,
Pod (就像在鯨魚莢或者豌豆莢中)是一組(一個或多個) 容器
這些容器共享存盤、網路、以及怎樣運行這些容器的宣告,
Pod 中的內容總是并置(colocated)的并且一同調度,在共享的背景關系中運行,
Pod 所建模的是特定于應用的“邏輯主機”,
其中包含一個或多個應用容器,
這些容器是相對緊密的耦合在一起的,
Linux命名空間、cgroups
*namespace*
Linux namespace 提供了一種內核級別隔離系統資源的方法,通過將系統的全域資源放在不同的namespace中來實作資源隔離的目的.Linux 中六類系統資源的隔離機制:
● Mount: 隔離檔案系統掛載點
● UTS: 隔離主機名和域名資訊
● IPC: 隔離行程間通訊
● PID: 隔離行程的 ID
● NetWork: 隔離網路資源
● User: 隔離用戶和用戶組的 ID
cgroups
cgroups 限制一個行程組能夠使用的資源上限,包括 CPU,記憶體,磁盤,網路帶寬等,同時可以設定行程優先級,以及將行程掛起和恢復等,
docker 角度理解Pod
Pod 的共享背景關系包括一組 Linux 名字空間、控制組(cgroup)和可能一些其他的隔離 方面,即用來隔離 Docker 容器的技術, 在 Pod 的背景關系中,每個獨立的應用可能會進一步實施隔離,
就 Docker 概念的術語而言,Pod 類似于共享名字空間和檔案系統卷的一組 Docker 容器,
Pod 中多個容器如何協調?
Pod 被設計成支持形成內聚服務單元的多個協作程序(形式為容器),
Pod 中的容器被自動安排到集群中的同一物理機或虛擬機上,并可以一起進行調度,
容器之間可以共享資源和依賴、彼此通信、協調何時以及何種方式終止自身,
例如,你可能有一個容器,為共享卷中的檔案提供 Web 服務器支持,以及一個單獨的 “sidecar(掛斗)”容器負責從遠端更新這些檔案,如下圖所示:

如何理解Pod共享背景關系?
一個Pod的共享背景關系是Linux命名空間、cgroups和其它潛在隔離內容的集合, 在Pod中,容器共享一個IP地址和埠空間,它們可以通過localhost發現彼此,
在同一個Pod中的容器,可以使用System V 或POSIX信號進行標準的行程間通信和共享記憶體,
在不同Pod中的容器,擁有不同的IP地址,因此不能夠直接在行程間進行通信,容器間通常使用Pod IP地址進行通信,
Pod 的背景關系可以理解成多個linux命名空間的聯合:
● PID 命名空間(同一個Pod中應用可以看到其它行程)
● 網路 命名空間(同一個Pod的中的應用對相同的IP地址和埠有權限)
● IPC 命名空間(同一個Pod中的應用可以通過VPC或者POSIX進行通信)
● UTS 命名空間(同一個Pod中的應用共享一個主機名稱)

《k8s-企業級容器應用托管》- 持續更新
第一段:認識k8s是什么?推薦閱讀:《云原生新時代弄潮兒k8s憑什么在容器化方面獨樹一幟?》
第二段:認識k8s家庭成員?推薦閱讀:《趁著同事玩游戲偷偷認識k8s一家子補補課》
第三段:認識k8s容器小管家Pod?推薦閱讀:《Kubernetes家族容器小管家Pod在線答疑?》
第四段:待更新?推薦休閑閱讀:《囧么肥事》
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423933.html
標籤:其他
上一篇:月薪7k和月薪25k的軟體測驗人都有哪些區別?掌握它領導都高看你
下一篇:停止學習框架
