佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 云原生技術(shù)kubernetes調(diào)度單位pod的使用詳解

云原生技術(shù)kubernetes調(diào)度單位pod的使用詳解

熱門標(biāo)簽:智能手機(jī) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 檢查注冊(cè)表項(xiàng) 美圖手機(jī) 阿里云 使用U盤裝系統(tǒng) 網(wǎng)站建設(shè) 硅谷的囚徒呼叫中心

k8s中的最小調(diào)度單位---pod

     之前的文章中,我們對(duì)k8s能夠解決的問(wèn)題做了簡(jiǎn)單介紹,簡(jiǎn)單來(lái)說(shuō),它解決的問(wèn)題是容器的編排與調(diào)度,它的核心價(jià)值在于:運(yùn)行在大規(guī)模集群的任務(wù)之間,實(shí)際上存在著各種各樣的關(guān)系,這些關(guān)系的處理,才是任務(wù)編排和系統(tǒng)管理最困難的地方,k8s就是為了這個(gè)問(wèn)題而生的。

      這句話比較難理解,我們從已有的知識(shí)入手,抽絲剝繭,慢慢理解它。我們已經(jīng)知道,容器的本質(zhì)是一個(gè)進(jìn)程,它包含三個(gè)部分:

如果說(shuō)容器是云環(huán)境的一個(gè)進(jìn)程,那么你可以將k8s理解成云環(huán)境中的一個(gè)操作系統(tǒng)。

    在一個(gè)操作系統(tǒng)當(dāng)中,進(jìn)程并不總是孤立運(yùn)行的,往往是通過(guò)一個(gè)進(jìn)程組的方式運(yùn)行的。實(shí)際部署應(yīng)用的時(shí)候,我們的應(yīng)用往往不是以孤立的形式跑在docker容器中的,應(yīng)用之間存在這樣那樣的關(guān)系,有的時(shí)候,他們必須跑在同一臺(tái)機(jī)器上,并且相互訪問(wèn),類似于捆綁式的,例如:如果兩個(gè)容器之間要發(fā)生之間的文件交換、需要共享某些Linux Namespace等場(chǎng)景。這種關(guān)系我們稱之為"超親密關(guān)系"。

     基于上面的這個(gè)前提,k8s在設(shè)計(jì)之初,就考慮了這一點(diǎn),所以它在設(shè)計(jì)的時(shí)候,并不是以容器為最小的調(diào)度單位的,而是以pod這個(gè)新的概念作為k8s的最小調(diào)度單位,而每一個(gè)pod中可以包含多個(gè)容器,這樣,就實(shí)現(xiàn)了部署在容器中的應(yīng)用程序之間就實(shí)現(xiàn)了捆綁,也就是他們永遠(yuǎn)只能被部署在一臺(tái)機(jī)器上,要么部署成功,要么失敗,不可能出現(xiàn)一種中間狀態(tài)。

Pod和容器的關(guān)系?

   需要注意的是,Pod是一個(gè)邏輯上的概念,它的本質(zhì)是一組共享了某些資源的容器。確切的說(shuō),同一個(gè)pod里面的容器,共享了相同的network namespace,當(dāng)然,還可以共享掛載卷等資源。

    所謂的共享,并不是依賴,而是對(duì)等。

    假如我們有A、B兩個(gè)容器,如果A依賴B,那么A的啟動(dòng)順序一定在B之后。如果A、B的地位對(duì)等,那么A、B的啟動(dòng)順序?qū)](méi)有嚴(yán)格要求,這才是真正的共享。那么誰(shuí)來(lái)預(yù)先創(chuàng)建被共享的network資源呢?

   在Pod中,如果包含了多個(gè)應(yīng)用容器,是需要一個(gè)infra容器,將這些應(yīng)用容器給關(guān)聯(lián)起來(lái)的。類似于下面這樣:

在K8S中,infra容器占用了極少的資源,它只運(yùn)行了一個(gè)叫pause的鏡像,所以也被稱為pause容器,它占用的磁盤大小在100~200kb之間。infra的存在是為了創(chuàng)建network namespace,然后應(yīng)用容器A和應(yīng)用容器B就可以加入到這個(gè)   network namespace中了。

對(duì)于 Pod 里的容器 A 和容器 B 來(lái)說(shuō):
1、它們可以直接使用 localhost 進(jìn)行通信;
2、它們看到的網(wǎng)絡(luò)設(shè)備跟 Infra 容器看到的完全一樣;
3、一個(gè) Pod 只有一個(gè) IP 地址,也就是這個(gè) Pod 的 Network Namespace 對(duì)應(yīng)的 IP 地址;
4、當(dāng)然,其他的所有網(wǎng)絡(luò)資源,都是一個(gè) Pod 一份,并且被該 Pod 中的所有容器共享;
5、Pod 的生命周期只跟 Infra 容器一致,而與容器 A 和 B 無(wú)關(guān)
6、對(duì)于同一個(gè) Pod 里面的所有用戶容器來(lái)說(shuō),它們的進(jìn)出流量,也可以認(rèn)為都是通過(guò) Infra 容器完成的

    在這種設(shè)計(jì)模式下,掛載相同的Volume卷就很容易了,只需要在Pod的初始化yaml文件中配置volume參數(shù)即可,具體內(nèi)容后續(xù)會(huì)專門分享。

     對(duì)于容器來(lái)說(shuō),一個(gè)容器只能管理一個(gè)進(jìn)程,而不是一個(gè)應(yīng)用。我們?cè)谶M(jìn)行應(yīng)用上云遷移的時(shí)候,需要將應(yīng)用若干個(gè)進(jìn)程,然后去考慮應(yīng)用模塊之間是否具有"超親密關(guān)系",擁有超親密關(guān)系的進(jìn)程可以部署在一個(gè)Pod中,其他的進(jìn)程部署在另外的Pod中,用這個(gè)思路去拆分應(yīng)用,才符合容器設(shè)計(jì)的初衷。

以上就是云原生技術(shù)kubernetes調(diào)度單位pod的使用詳解的詳細(xì)內(nèi)容,更多關(guān)于kubernetes調(diào)度單位pod的使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

標(biāo)簽:山南 通遼 湖北 賀州 煙臺(tái) 湘潭 黃山 懷化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《云原生技術(shù)kubernetes調(diào)度單位pod的使用詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    呼图壁县| 古田县| 彭泽县| 青铜峡市| 迭部县| 岳阳市| 五指山市| 泗洪县| 高雄县| 当阳市| 宁德市| 西城区| 民权县| 焉耆| 炉霍县| 青铜峡市| 湖南省| 乌鲁木齐县| 溆浦县| 顺义区| 新泰市| 宜君县| 日照市| 石阡县| 和田县| 西吉县| 安岳县| 隆林| 香格里拉县| 合肥市| 浦江县| 客服| 秭归县| 若羌县| 宜州市| 唐海县| 那曲县| 太谷县| 红安县| 沾益县| 铁岭县|