五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

在 K8S 中部署一個(gè)應(yīng)用 下

2023-06-23 23:04 作者:阿兵云原生  | 我要投稿


接著上一篇繼續(xù)部署應(yīng)用到 K8S中

之前簡單部署的簡單集群,三個(gè)工作節(jié)點(diǎn)是運(yùn)行在 docker 和 kubelet 的,還有一個(gè)是控制節(jié)點(diǎn)

ReplicationController , pod 和 service 本次關(guān)系

之前有提到 ReplicationController , pod 和 服務(wù)是如何組合在一起的呢?

可以通過這張如圖來解釋一下

我們之前創(chuàng)建 pod 的時(shí)候不是直接創(chuàng)建的,是通過 docker run 來創(chuàng)建的一個(gè) replicationController ,然后基于 rc 來創(chuàng)建的一個(gè) pod 實(shí)例

為了讓 pod 能夠被外部訪問到,所以我們需要讓 K8S 將 replicationController 管理的所有 pod 由一個(gè)服務(wù)對外暴露,因此有了 kubia-http

  • 服務(wù)是有對外暴露 IP 的,請求打到 service 上

  • service 將請求轉(zhuǎn)到 pod 上面的 9999 端口上,然后 pod 提供服務(wù)

ReplicationController 角色是啥樣的

通過上面的案例,我們應(yīng)該知道 ReplicationController實(shí)際上是用于復(fù)制 pod 的,通過 ReplicationController 來創(chuàng)建多個(gè) pod 副本

ReplicationController 始終確保存在一個(gè)運(yùn)行中的 pod 實(shí)例

如果我們上面創(chuàng)建的 pod 消失了,那么 ReplicationController 將會創(chuàng)建一個(gè)新的 pod 來替換消失的 pod

為什么需要 service

再來看看 service ,也就是上面 kubia-http 服務(wù)

為什么需要服務(wù),有了 pod ,還拿 service 干啥?

通過上面的 ReplicationController 我們知道,pod 消失之后, ReplicationController 會再創(chuàng)建一個(gè)新的將其替換

那么我們也知道,每一個(gè) pod 都有自己的獨(dú)立的主機(jī)名和 IP

pod 在環(huán)境中會因?yàn)槿魏卧蛑苯訏斓艉拖?,然后又被新?pod 替換,這個(gè)時(shí)候 pod 的 IP 變化了,外部如何正確訪問到我們的服務(wù)呢?

這個(gè)時(shí)候就需要 service 了

  • service 可以解決不斷變化的 pod IP 問題

  • service 可以在一個(gè)固定 IP 和端口上對外暴露多個(gè)pod

當(dāng)一個(gè) service 被創(chuàng)建的時(shí)候,會得到一個(gè)靜態(tài)的 IP,在 service 整個(gè)生命周期中,它的 IP 是不會變的

客戶端只需要通過這個(gè)固定 IP 連接服務(wù)即可,服務(wù)會將請求轉(zhuǎn)到 內(nèi)部其中一個(gè) pod, 客戶端不需要關(guān)心 pod 在哪里,只需要關(guān)系 service 在哪里即可

增加副本數(shù)量

當(dāng)前的系統(tǒng)里面只有的一個(gè)副本,現(xiàn)在我們可以增加到 3 個(gè)副本

我們可以通過指令 kubectl get replicationcontrollers 來查看當(dāng)前的副本數(shù)

可以通過 kubectl scale rc mykubia --replicas=3,來將副本數(shù)調(diào)整至 3 個(gè)

  • 我們執(zhí)行上面這個(gè)指令,只是告訴 K8S 系統(tǒng)中期望的副本數(shù)量,并沒有告訴 K8S 需要如何去操作,如何去實(shí)現(xiàn)

  • K8S 自身會去檢查當(dāng)前的狀態(tài)是否和期望的狀態(tài)一致,如果不一致就會進(jìn)行調(diào)整, 這個(gè)是 K8S 中基本的原則之一

我們用到的指令中,好多都是 kubectl get xxx 的,就是獲取對應(yīng)的 pod,service ,rc 等等信息的

其實(shí)我們也可以直接執(zhí)行 kubectl get,這樣可以列出所有可能類型的對象,還能夠顯示縮寫

最新的系統(tǒng)狀態(tài)

通過執(zhí)行上述的指令,系統(tǒng)中將 1 個(gè)副本,調(diào)整成了 3 個(gè)副本

這就是 K8S 可以輕易的做到水平伸縮,我們要擴(kuò)充副本的時(shí)候,再也不需要手動的去安裝和運(yùn)行其他副本了,只用執(zhí)行指令,修改期望數(shù)量即可

當(dāng)然,我們放進(jìn) pod 的服務(wù),也需要做成無狀態(tài),可橫向擴(kuò)展的,這樣才能更好的使用 K8S 的能力

這樣子的話,最新的系統(tǒng)應(yīng)該是這個(gè)樣子的

外部請求打到 service 上面,service 會將請求給到 任意一個(gè) pod ,對應(yīng)的 pod 即提供服務(wù)即可

今天就到這里,學(xué)習(xí)所得,若有偏差,還請斧正

歡迎點(diǎn)贊,關(guān)注,收藏

朋友們,你的支持和鼓勵,是我堅(jiān)持分享,提高質(zhì)量的動力

好了,本次就到這里

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

我是阿兵云原生,歡迎點(diǎn)贊關(guān)注收藏,下次見~


在 K8S 中部署一個(gè)應(yīng)用 下的評論 (共 條)

分享到微博請遵守國家法律
廊坊市| 隆安县| 娱乐| 东源县| 阿勒泰市| 丹棱县| 交口县| 石首市| 麻栗坡县| 五台县| 麦盖提县| 高邑县| 曲松县| 黄骅市| 甘泉县| 文山县| 新乐市| 密山市| 泉州市| 即墨市| 集贤县| 当涂县| 淳安县| 台北市| 东莞市| 茶陵县| 大化| 集贤县| 乌审旗| 琼结县| 来安县| 星座| 柳州市| 巨野县| 朔州市| 孝昌县| 江孜县| 郸城县| 肥乡县| 丹阳市| 仙居县|