簡(jiǎn)介
從整體來看:K8s是圍繞著Pod這個(gè)可以視作單個(gè)容器的“容器組”展開的仓手。也就說pod是能被創(chuàng)建向瓷、調(diào)度和管理的最小單元。
POD
一根竿、pod的一些操作
- 在K8s中陵像,所有容器都會(huì)被分配一個(gè)副本控制器
- 每個(gè)容器都被指定一個(gè)分組的標(biāo)簽
- 當(dāng)為某些容器(可以使用label指定)分配了一個(gè)service代理后,這些容器可以統(tǒng)一使用一個(gè)固定ip
二寇壳、pod和容器的關(guān)系
- 一個(gè)Pod(想象成籃子)里的容器(想象成雞蛋)能有多少資源取決于籃子大小
- label貼在籃子上
- IP分配給籃子醒颖,pod中所有容器共享ip
- 一個(gè)容器仍會(huì)被封裝成pod
三、pod的一些特性
- 通過K8s volume機(jī)制壳炎,在容器間共享存儲(chǔ)泞歉、IP和端口區(qū)間
- 通過localhost直接訪問另一容器
replication controller
replication controller 決定了一個(gè)pod有多少同時(shí)運(yùn)行的副本,并保持副本的期望狀態(tài)與當(dāng)前的狀態(tài)一致。在設(shè)計(jì)上腰耙,k8s為每個(gè)pod外掛一個(gè)控制器進(jìn)程榛丢,避免了健康檢查逐漸成為性能瓶頸
一、pod各種狀態(tài)值
狀態(tài)值 | 含義 |
---|---|
Pending | pod的創(chuàng)建請(qǐng)求已經(jīng)被系統(tǒng)接受挺庞,但是pod內(nèi)還有一個(gè)或者多個(gè)容器未啟動(dòng)晰赞。這個(gè)時(shí)間可能包括:下載docker鏡像的網(wǎng)絡(luò)傳輸時(shí)間和pod的調(diào)度時(shí)間等。 |
Running | pod已經(jīng)被綁定到工作節(jié)點(diǎn)挠阁,而且pod內(nèi)所有的容器已經(jīng)被創(chuàng)建宾肺。最重要的是至少有一個(gè)容器處于運(yùn)行狀態(tài)溯饵、正在重啟或啟動(dòng)侵俗。 |
Succeeded | 專指pod內(nèi)所有容器成功退出、并且不會(huì)發(fā)生重啟 |
Failed | pod內(nèi)所有容器均已經(jīng)退出丰刊、并且至少至少有一個(gè)容器發(fā)生錯(cuò)誤而退出 |
Unknown | 因?yàn)槟承┪粗脑虬ィ鳈C(jī)上的kubelet目前無法獲得pod的狀態(tài) |
service
最為代理來確保需要使用pod的應(yīng)用而不需要知道pod的真是ip,另一方面是當(dāng)使用replication controller 創(chuàng)建了多個(gè)pod副本時(shí)啄巧,需要一個(gè)代理為這些pod做負(fù)載均衡寻歧。或許命名為proxy或者router更為合適
- 主要由一個(gè)獨(dú)一無二ip和一個(gè)laber selector構(gòu)成
- 這個(gè)Ip和service的生命周期相同且不變(pod的ip地址與此不同秩仆,會(huì)隨著pod的生命周期產(chǎn)生和消亡)