Kubernetes——POD

什么是Pod

Pod是可以創(chuàng)建和管理Kubernetes計(jì)算的最小可部署單元昨登。一個(gè)Pod代表著集群中運(yùn)行的一個(gè)進(jìn)程嗽元。

Pod就像是豌豆莢一樣,它由一個(gè)或者多個(gè)容器組成(例如Docker容器),它們共享容器存儲(chǔ)彤避、網(wǎng)絡(luò)和容器運(yùn)行配置項(xiàng)。Pod中的容器總是被同時(shí)調(diào)度夯辖,有共同的運(yùn)行環(huán)境琉预。你可以把單個(gè)Pod想象成是運(yùn)行獨(dú)立應(yīng)用的“邏輯主機(jī)”——其中運(yùn)行著一個(gè)或者多個(gè)緊密耦合的應(yīng)用容器——在有容器之前,這些應(yīng)用都是運(yùn)行在幾個(gè)相同的物理機(jī)或者虛擬機(jī)上蒿褂。

盡管kubernetes支持多種容器運(yùn)行時(shí)圆米,但是Docker依然是最常用的運(yùn)行時(shí)環(huán)境,我們可以使用Docker的術(shù)語(yǔ)和規(guī)則來(lái)定義Pod啄栓。

Pod中共享的環(huán)境包括Linux的namespace娄帖,cgroup和其他可能的隔絕環(huán)境,這一點(diǎn)跟Docker容器一致昙楚。在Pod的環(huán)境中近速,每個(gè)容器中可能還有更小的子隔離環(huán)境。

Pod中的容器共享IP地址和端口號(hào)堪旧,它們之間可以通過(guò)localhost互相發(fā)現(xiàn)削葱。它們之間可以通過(guò)進(jìn)程間通信,例如SystemV信號(hào)或者POSIX共享內(nèi)存淳梦。不同Pod之間的容器具有不同的IP地址析砸,不能直接通過(guò)IPC通信。

Pod中的容器也有訪問(wèn)共享volume的權(quán)限爆袍,這些volume會(huì)被定義成pod的一部分并掛載到應(yīng)用容器的文件系統(tǒng)中干厚。

就像每個(gè)應(yīng)用容器,pod被認(rèn)為是臨時(shí)實(shí)體螃宙。在Pod的生命周期中蛮瞄,pod被創(chuàng)建后,被分配一個(gè)唯一的ID(UID)谆扎,調(diào)度到節(jié)點(diǎn)上挂捅,并一致維持期望的狀態(tài)直到被終結(jié)(根據(jù)重啟策略)或者被刪除。如果node死掉了堂湖,分配到了這個(gè)node上的pod闲先,在經(jīng)過(guò)一個(gè)超時(shí)時(shí)間后會(huì)被重新調(diào)度到其他node節(jié)點(diǎn)上。一個(gè)給定的pod(如UID定義的)不會(huì)被“重新調(diào)度”到新的節(jié)點(diǎn)上无蜂,而是被一個(gè)同樣的pod取代伺糠,如果期望的話甚至可以是相同的名字,但是會(huì)有一個(gè)新的UID(查看replication controller獲取詳情)斥季。

Pod中如何管理多個(gè)容器

Pod中可以同時(shí)運(yùn)行多個(gè)進(jìn)程(作為容器運(yùn)行)協(xié)同工作训桶。同一個(gè)Pod中的容器會(huì)自動(dòng)的分配到同一個(gè) node 上累驮。同一個(gè)Pod中的容器共享資源、網(wǎng)絡(luò)環(huán)境和依賴舵揭,它們總是被同時(shí)調(diào)度谤专。

注意在一個(gè)Pod中同時(shí)運(yùn)行多個(gè)容器是一種比較高級(jí)的用法。只有當(dāng)你的容器需要緊密配合協(xié)作的時(shí)候才考慮用這種模式午绳。例如置侍,你有一個(gè)容器作為web服務(wù)器運(yùn)行,需要用到共享的volume拦焚,有另一個(gè)“sidecar”容器來(lái)從遠(yuǎn)端獲取資源更新這些文件蜡坊。如圖

image

Pod中可以共享兩種資源

  • 網(wǎng)絡(luò) 每個(gè)Pod都會(huì)被分配一個(gè)唯一的IP地址漱受。Pod中的所有容器共享網(wǎng)絡(luò)空間憋槐,包括IP地址和端口。Pod內(nèi)部的容器可以使用localhost互相通信怎顾。Pod中的容器與外界通信時(shí)螟够,必須分配共享網(wǎng)絡(luò)資源(例如使用宿主機(jī)的端口映射)。
  • 存儲(chǔ) 可以Pod指定多個(gè)共享的Volume峡钓。Pod中的所有容器都可以訪問(wèn)共享的volume妓笙。Volume也可以用來(lái)持久化Pod中的存儲(chǔ)資源,以防容器重啟后文件丟失能岩。

使用Pod

我通常把pod分為兩類:

  • 自主式Pod:這種Pod本身是不能自我修復(fù)的寞宫,當(dāng)Pod被創(chuàng)建后(不論是由你直接創(chuàng)建還是被其他Controller),都會(huì)被Kuberentes調(diào)度到集群的Node上拉鹃。直到Pod的進(jìn)程終止辈赋、被刪掉、因?yàn)槿鄙儋Y源而被驅(qū)逐膏燕、或者Node故障之前這個(gè)Pod都會(huì)一直保持在那個(gè)Node上钥屈。Pod不會(huì)自愈。如果Pod運(yùn)行的Node故障坝辫,或者是調(diào)度器本身故障篷就,這個(gè)Pod就會(huì)被刪除。同樣的近忙,如果Pod所在Node缺少資源或者Pod處于維護(hù)狀態(tài)竭业,Pod也會(huì)被驅(qū)逐。
  • 控制器管理的Pod:Kubernetes使用更高級(jí)的稱為Controller的抽象層及舍,來(lái)管理Pod實(shí)例未辆。Controller可以創(chuàng)建和管理多個(gè)Pod,提供副本管理锯玛、滾動(dòng)升級(jí)和集群級(jí)別的自愈能力咐柜。例如,如果一個(gè)Node故障,Controller就能自動(dòng)將該節(jié)點(diǎn)上的Pod調(diào)度到其他健康的Node上炕桨。雖然可以直接使用Pod饭尝,但是在Kubernetes中通常是使用Controller來(lái)管理Pod的。
image

上圖所示是Pod的組成示意圖献宫,我們看到每個(gè)Pod都有一個(gè)特殊的被稱為“根容器”的Pause 容器钥平。 Pause容器對(duì)應(yīng)的鏡像屬于Kubernetes平臺(tái)的一部分,除了Pause容器姊途,每個(gè)Pod還包含一個(gè)或者多個(gè)緊密相關(guān)的用戶業(yè)務(wù)容器涉瘾。

Pod控制器類型

  • ReplicationController(RC):用來(lái)確保容器應(yīng)用的副本數(shù)始終保持在用戶定義的副本數(shù),即如果有容器異常退出捷兰,會(huì)自動(dòng)創(chuàng)建新的Pod來(lái)替代立叛,而異常多出來(lái)的容器也會(huì)自動(dòng)回收,在新版本的Kubernetes中建議使用ReplicaSet來(lái)取代ReplicationController贡茅。

  • ReplicaSet(RS):代用戶創(chuàng)建指定數(shù)量的pod副本數(shù)量秘蛇,確保pod副本數(shù)量符合預(yù)期狀態(tài),并且支持滾動(dòng)式自動(dòng)擴(kuò)容和縮容功能顶考。和ReplicationController沒(méi)有本質(zhì)的不同赁还,只是名字不一樣,并且ReplicaSet支持集合式的selector驹沿,雖然ReplicaSet可以獨(dú)立使用艘策,但一般還是建議使用Deployment來(lái)自動(dòng)管理ReplicaSet,這樣就無(wú)須擔(dān)心跟其他機(jī)制的不兼容問(wèn)題(比如ReplicaSet不支持rolling-update但Deployment支持)

  • Deployment(重要):工作在ReplicaSet之上渊季,用于管理無(wú)狀態(tài)應(yīng)用朋蔫,目前來(lái)說(shuō)最好的控制器。支持滾動(dòng)更新和回滾功能却汉,還提供聲明式配置驯妄。

  • HPA(Horizontal Pod Autoscaling):僅適用于Deployment和ReplicaSet在V1版本中僅支持根據(jù)Pod的CPU利用率擴(kuò)縮容,在vlalpha版本中合砂,支持根據(jù)內(nèi)存和用戶自定義的metric擴(kuò)縮容富玷。

  • StatefulSet:是為了解決有狀態(tài)服務(wù)的問(wèn)題(對(duì)應(yīng)Deployment和ReplicaSet是為無(wú)狀態(tài)服務(wù)而設(shè)計(jì)),其應(yīng)用場(chǎng)景包括:

    • 穩(wěn)定的持久化存儲(chǔ)既穆,即Pod重新調(diào)度后赎懦,還是能訪問(wèn)到相同的持久化數(shù)據(jù),基于PVC來(lái)實(shí)現(xiàn)
    • 穩(wěn)定的網(wǎng)絡(luò)標(biāo)志幻工,即Pod重新調(diào)度后励两,其PodName和HostName不變,基于Headless Service(即沒(méi)有Cluster IP的Service)來(lái)實(shí)現(xiàn)
    • 有序部署囊颅,有序擴(kuò)展当悔,即Pod是有順序的傅瞻,在部署或者擴(kuò)展的時(shí)候要依據(jù)定義的順序依次進(jìn)行(即從0到N-1,在下一個(gè)Pod運(yùn)行之前所有之前的Pod都必須是Running和Ready狀態(tài))盲憎,基于init containers來(lái)實(shí)現(xiàn)
    • 有序收縮嗅骄,有序刪除(即從N-1到0)
  • DaemonSet:用于確保集群中的全部或者一些節(jié)點(diǎn)只運(yùn)行一個(gè)Pod副本,當(dāng)有Node加入集群時(shí)饼疙,也會(huì)為它們新增一個(gè)Pod溺森,當(dāng)有Node從集群移除時(shí),這些Pod也會(huì)被回收窑眯,刪除DaemonSet將會(huì)刪除它創(chuàng)建的所有Pod
    使用DaemonSet的一些典型用法:

    • 運(yùn)行集群存儲(chǔ)daemon屏积,例如在每個(gè)Node上運(yùn)行g(shù)lusterd、ceph
    • 在每個(gè)Node上運(yùn)行日志收集daemon磅甩,例如fluentd炊林、logstash
    • 在每個(gè)Node上運(yùn)行監(jiān)控daemon,例如Prometheus Node Exporter
  • Job:負(fù)責(zé)批處理任務(wù)卷要,即僅執(zhí)行一次的任務(wù)渣聚,它保證批處理任務(wù)的一個(gè)或多個(gè)Pod成功與結(jié)束

  • Cron Job:管理基于時(shí)間的Job,即:

    • 在給定時(shí)間點(diǎn)僅運(yùn)行一次
    • 周期性的在給定時(shí)間點(diǎn)運(yùn)行

服務(wù)發(fā)現(xiàn)

image.png

未完待續(xù)僧叉。奕枝。。彪标。。掷豺。

參考:
https://www.cnblogs.com/xzkzzz/p/9507152.html

https://blog.csdn.net/weixin_33895695/article/details/93799801

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捞烟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子当船,更是在濱河造成了極大的恐慌题画,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件德频,死亡現(xiàn)場(chǎng)離奇詭異苍息,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)壹置,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門竞思,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人钞护,你說(shuō)我怎么就攤上這事盖喷。” “怎么了难咕?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵课梳,是天一觀的道長(zhǎng)距辆。 經(jīng)常有香客問(wèn)我,道長(zhǎng)暮刃,這世上最難降的妖魔是什么跨算? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮椭懊,結(jié)果婚禮上诸蚕,老公的妹妹穿的比我還像新娘。我一直安慰自己灾搏,他們只是感情好挫望,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狂窑,像睡著了一般媳板。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泉哈,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天蛉幸,我揣著相機(jī)與錄音,去河邊找鬼丛晦。 笑死奕纫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的烫沙。 我是一名探鬼主播匹层,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼锌蓄!你這毒婦竟也來(lái)了升筏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瘸爽,失蹤者是張志新(化名)和其女友劉穎您访,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體剪决,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡灵汪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柑潦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片享言。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖渗鬼,靈堂內(nèi)的尸體忽然破棺而出担锤,到底是詐尸還是另有隱情,我是刑警寧澤乍钻,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布肛循,位于F島的核電站铭腕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏多糠。R本人自食惡果不足惜累舷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望夹孔。 院中可真熱鬧被盈,春花似錦、人聲如沸搭伤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)怜俐。三九已至身堡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拍鲤,已是汗流浹背贴谎。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留季稳,地道東北人擅这。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像景鼠,于是被迫代替她去往敵國(guó)和親仲翎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360