Pod进阶(容器本质,Pod实现,容器设计模式)
容器的本質
-
一個視圖被隔離,資源受限制的進程
-
容器里PID = 1 的進程就是應用本省
-
管理虛擬機 = 管理基礎設施; 管理容器 = 直接管理應用本身
-
Kubernetes = 操作系統
容器 =進程
Pod = 進程組
Pod 一個邏輯單元,多個容器的組合,Kubernetes的院子調度單元
親密關系-調度解決
-
兩個應用需要運行在同一臺宿主機上
超親密關系-Pod 解決(pod)
-
會發生直接的文件交互
-
使用localhost或者socket文件進行本地通信
-
會發生頻發的rpc調用
-
會共享某些Linux Namespce
Pod 實現
共享網路
-
容器A和B
-
通過Infra Container的方式共享同一個Network nAMESPCE
-
直接使用loclhost進行通信
-
看到的網絡設備跟infra容器看到的完全一樣。
-
一個Pod只有一個IP地址,也就是這個Pod的Network Namespace 對應的IP地址
-
所有網絡資源,都是一個pod一份,并且被該Pod中的所有容器共享。
-
-
整個Pod的生命周期Infra容器一致,而與容器A和B無關
-
共享存儲
Share-data 對應在宿主機上的目錄會被同時綁定掛載了要共享的容器。
容器設計模式
Sidecar
Sidcar模式是一種將應用功能從應用本省剝離出來作為單獨進程的方式。該模式允許向應用虎浸入添加多種功能,避免了為了滿足第三方組件需求而向應用添加額外的配置代碼。
Sidecar附加到主應用(父應用),以擴展/增強功能特性,同時Sidecar與主應用是松耦合的。
通過在pod里定義專門容器,來執行主業務容器需要的輔助工作的。
優勢:
-
將輔助功能同主業務容器解耦,實現獨立發布和能力重用。
應用
日志收集
-
業務容器將日志寫在Volume里
-
日志容器共享該Volume從而將日志轉發遠程存儲中
代理容器
-
代理容器對業務容器屏蔽被代理的服務器集群,減緩業務代碼的實現邏輯
-
容器之間通過locakhost直接通信
-
代理容器的代碼可被重用
-
適配器容器
-
適配器容器將業務容器暴露出來的接口轉換為另一種格式。
-
容器之間通過localhost直接通信
-
代理容器的代碼可被重用
-
參考<阿里云 云原生技術公開課>
總結
以上是生活随笔為你收集整理的Pod进阶(容器本质,Pod实现,容器设计模式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信聊天记录里的文件又失效了?试试这个文
- 下一篇: Kubernetes(K8s)容器设计模