最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

pod 控制器 3

2023-07-02 22:27 作者:阿兵云原生  | 我要投稿

簡單回顧

之前我們學習過的的 docker ,例如我們運行

docker run busybox echo "hello wrold"

他的實際內在邏輯是這個樣子的

  • 程序將指令推送給 docker

  • docker 會檢查本地是否有 busybox 鏡像,若沒有則去 docker hub 上面拉取鏡像,并下載到本機,再基于這個鏡像創(chuàng)建一個 容器

  • 在容器中運行指令 echo “hello wrold”

前面我們也知道了 每一個 pod 或者 docker 容器,都有自己獨立的文件系統(tǒng),進程,用戶,主機名和網絡接口

簡單運行 pod

如果想簡單運行一個 pod,我們可以這樣做

kubectl run xmtkubia --image=xiaomotong888/xmtkubia --port=8080

xiaomotong888/xmtkubia 是 dockerhub 上面的具體公開的鏡像

pod 中的容器運行位置

我們知道 pod 中可以運行 1 個容器或者多個容器,那么如果 1 個pod 中,運行多個容器,那么這些容器都會運行在同一個工作節(jié)點上面嗎?

當一個 pod 中有多個容器的時候,這些容器一定總是運行在同一個工作節(jié)點上面的,一個 pod 絕對不會跨越多個工作節(jié)點

為什么是 一個 pod 里面跑多個容器,而不是一個容器里面跑多個進程?

在我們學習 docker 和 K8S 的過程中,有沒有思考過,為什么需要引入 pod 這個概念,我們一個容器里面設計成跑多個進程不就好了嗎?

實際上,容器是被設計成每個容器只能運行一個進程的,當然這個進程在程序中自動開辟的子進程是不包含在內的

  • 如果我們單個容器中運行了多個不相關的進程,那么當同一個容器中別的進程崩潰的時候,便會影響到其他進程

  • 多個進程跑在同一個容器中,如何區(qū)分進程在標準輸出打印的信息呢,這會很麻煩

提出 pod 其實是一種解決方案

  • 提出 pod 這種結構后,1 個 pod 可以和多個容器綁定在一起

  • 1 個 pod 里面可以同時運行多個進程(即多個容器),并且這行進程能夠享有幾乎同樣的環(huán)境

  • 從外部看,這些進程好像是全部運行在單個容器中,實際上這些進程又相互保持一定的隔離

上面這里說到的 pod 中的容器相互間保持的著一定的隔離,而不是完全隔離

這里指的是隔離容器組,而不是單個容器,每個容器組內的容器是可以共享容器組的資源的

容器如何共享 ip 和 端口

同一個 pod 中的容器是運行在相同的 Network 命名空間中的,因此他們對于 ip 地址和端口空間是共享的

那么同一個 pod 下面的容器,配置 端口號的時候就需要注意,不能沖突,例如這樣

在 K8S 中,所有的 pod 都是在同一個網絡地址空間中,網絡信息他們是共享的

如圖,不同 pod ?之間是可以通過 ip 直接訪問的

看了以上 pod 的行為,有沒有覺得 pod 的行為和實際的虛擬機或者物理機的行為有很多類似的地方,虛擬機里面跑的每一個進程,pod 里面也可以直接跑這些進程,只不過,pod 里面的每一個進程,都被一個容器包裹

所以啊, pod 可以看做是一個邏輯主機

實在的案例

一個應用程序,有前端應用服務器,和 后端的數據庫,如果我們需要將這個程序放到 K8S 環(huán)境中,我們是啟 1 個 pod 還是 2個 pod ?

在 K8S 中是推薦將上述的前端服務器和 后臺數據庫分開,分成 2 個 pod 去部署,原因有這些:

  • 這樣既能夠充分利用多個節(jié)點的 CPU 和內存,還可以方便我們后續(xù)的擴容和縮容

  • 在我們擴縮容的時候,基本單位也是 pod,K8S 中不能對單個容器進行擴縮容

  • 如果將前端和后臺都放到同一個pod 中,那么我們擴容或者縮容時候,那么相應的容器將會成倍的增加或減少

  • 前端和后臺的擴容縮容也會是完全不同的需求,并不能直接簡單粗暴的干就完了

如果我們把上述的前端和后臺這樣來部署是不推薦的

  • 全部放到同一個 pod 的同一個 容器中

  • 通一個 pod 中部署 2 個容器,分別部署前端和后臺

推薦的做法是

  • 在 2 個 pod 中分別開 1 個容器,各自部署 前端,后臺程序

我們實際工作中面臨是否需要在同一個 pod 中啟多個容器的時候,我們可以思考一下這樣的問題

  • 這些容器放在一起運行是必須的嗎?是否可以拆分放在不同的主機上運行

  • 這些程序是代表一個整體?還是相互獨立的

  • 對于擴容和鎖容,是需要一起進行,還是分別進行?

這些問題,咱們之后可以解決一下

今天就到這里,學習所得,若有偏差,還請斧正

歡迎點贊,關注,收藏

朋友們,你的支持和鼓勵,是我堅持分享,提高質量的動力

好了,本次就到這里

技術是開放的,我們的心態(tài),更應是開放的。擁抱變化,向陽而生,努力向前行。

我是阿兵云原生,歡迎點贊關注收藏,下次見~


pod 控制器 3的評論 (共 條)

分享到微博請遵守國家法律
惠州市| 哈巴河县| 吉木萨尔县| 郯城县| 苍梧县| 石首市| 丹东市| 南阳市| 五常市| 延川县| 长治市| 福州市| 龙岩市| 虎林市| 合山市| 南宫市| 新民市| 阳原县| 北票市| 原阳县| 彭山县| 静宁县| 增城市| 碌曲县| 特克斯县| 鞍山市| 淮阳县| 周口市| 乃东县| 佛教| 香港| 汉川市| 宜兰市| 防城港市| 甘南县| 汾西县| 抚州市| 乐亭县| 江北区| 上犹县| 基隆市|