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

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

Statefulset部署應(yīng)用

2023-07-31 23:01 作者:阿兵云原生  | 我要投稿

上一部分我們分享到了使用 RS 沒有辦法讓自己管理的多個 pod 都有一個獨立的持久化聲明,RS 沒有辦法在指定模板中對不同的 pod 做差異化處理

使用多個 RS 來分別管理自己的的一個 pod,當(dāng)我們擴(kuò)縮容的時候,也會出現(xiàn)問題,老的 pod 有遺留數(shù)據(jù),pod 里面的有殘留狀態(tài),這個時候,若創(chuàng)建了一個新的 pod 來替換,那么可能是會出現(xiàn)問題的,因為此時的 pod 是一個全新的 pod,他和老的 pod 的狀態(tài)可能是不一致的

那么接下來,我們來分享 K8S 的一種解決方式 ,使用 Statefulset

Statefulset 資源

Statefulset 也是和 ReplicaSet 一樣的屬于 K8S 中的一種資源,可以管理 pod 的,但是 Statefulset 是可以專門定制一類應(yīng)用,并且這些應(yīng)用每一個實例都是不可替代的,可以說是獨一無二

正因為 ReplicaSet 無法解決上述的問題,Statefulset 就來幫忙解決了,那么我們來看一下 Statefulset 為什么能解決,我們可以來對比一波

ReplicaSetStatefulset管理的 pod 是無狀態(tài)的管理的 pod 是有狀態(tài)的任何時候所管理的 pod 都可以被替換若有一個 pod 掛掉,這個 pod 是需要被重建的,
意味著必須與原來的 pod 實例擁有相同的名稱,網(wǎng)絡(luò),標(biāo)識,狀態(tài)可以填寫期望的副本數(shù)可以填寫期望的副本數(shù)生成的 pod 名字后綴是隨機(jī)的生成的 pod 名字,后綴是按索引順序的

Statefulset 有哪些特點

Statefulset 可以提供穩(wěn)定的網(wǎng)絡(luò)標(biāo)識

就像上述說到的,我們使用 Statefulset 創(chuàng)建的每一個 pod,都是按照索引順序創(chuàng)建的,通過創(chuàng)建的 pod 名字我們就可以很清晰的看得出來,舉個例子

咱們 ReplicaSet 創(chuàng)建出來的 pod 是類似于這樣的名稱,后綴都是隨機(jī)的

咱們 Statefulset 創(chuàng)建出來的 pod 名字是這樣的,后綴都是有序的索引

對于 Statefulset 這樣設(shè)計 pod 的名字,是非常好管理的,不管是擴(kuò)容還是縮容,直接按照索引順序來進(jìn)行增刪即可,非常方便

也就是說,當(dāng)我們需要擴(kuò)容的時候,就會在目前的最大索引上加 1,若需要縮容的話,就會直接在刪除掉最大索引對應(yīng)的 pod

這一點,ReplicaSet 擴(kuò)容縮容的時候,你是不知道他具體是會動哪個 pod ,是以哪個順序來進(jìn)行擴(kuò)縮容的

我們來瞅瞅 Statefulset ?的擴(kuò)縮容

在玩 ReplicaSet 的時候,我們擴(kuò)容和縮容,直接修改副本數(shù)就可以了,刪除一個 pod 之后,再創(chuàng)建一個 pod,新的這個 pod 與 舊的那個 pod 沒有半毛錢的關(guān)系,當(dāng)我們需要訪問 pod 的時候,也是選擇任意一個 pod 訪問即可(當(dāng)然,這里一般是要先訪問 Service)

現(xiàn)在玩 Statefulset 的時候就不一樣了,我們從 Statefulset ?減少 1 個副本數(shù),相應(yīng)的會減少一個 pod,我們再增加 ?1 個副本數(shù)的時候,Statefulset 便也會增加 1 個 pod

有趣的是,新增的這個 pod ,和剛才被刪掉的那個 pod 擁有相同名稱,相同的標(biāo)識,哪怕不是在同一個節(jié)點新建的 pod,這個新的 pod 的所有信息也是完全和之前刪除的 pod 一模一樣

就像這樣的:

如上圖,哪怕是我們刪除節(jié)點 2 的 pod-2,然后在節(jié)點 1 新建了一個 pod-2,此時的 pod-2 還是和舊的 pod-2 一毛一樣,沒有差別

可是 ReplicaSet 就不是這樣的哦,再用一個圖形象的說明一下:

在 ReplicaSet 這里的 pod-pl5hkpod-mjl2h 就真的一點關(guān)系都沒有,若是說有關(guān)系,那就只能是都是從同一個模板創(chuàng)建出來的

在用圖來說明一下 Statefulset 的擴(kuò)縮容

Statefulset 管理的 ?3 個 pod,逐個遞減的時候,是這個樣子的:會從索引最大的 pod 開始刪除

Statefulset 管理的 pod ,開始擴(kuò)容的時候,會一個一個恢復(fù)之前刪除的 pod

Statefulset 對于 pod 的擴(kuò)容和縮容不會很快,因為他需要確定一個 pod 正常運行之后,才會處理下一個 pod 的創(chuàng)建和刪除

Statefulset ?自身會去準(zhǔn)確的確認(rèn) pod 的狀態(tài),才會進(jìn)行處理下一個 pod 這個就是 Statefulset 的 at most-one 語義,這樣是為了避免同樣名稱的 pod 產(chǎn)生沖突,在 Statefulset ?中,會杜絕這種情況

Statefulset 還可以為每個獨立的有狀態(tài)的實例提供專屬存儲

Statefulset 能夠完美的解決 ReplicaSet 不能解決的問題,之前不是一直說到 ?1 個 ReplicaSet ?是沒有辦法在創(chuàng)建多個 pod 的時候,為每個 pod 提供獨立的持久卷聲明么

Statefulset ?擲地有聲的說,我行,我可以

之前關(guān)于掛載卷聲明的圖就可以是這樣的了

對于 Statefulset ?就可以很容易做到 1 個 Statefulset ?資源,創(chuàng)建多個 pod,并未每一個 pod 提供獨立的持久卷聲明和持久卷

關(guān)于 Statefulset ? 我們需要知道,擴(kuò)縮容的時候,行為類似于 deploy 與 RS 的處理方式,在 Statefulset ? 進(jìn)行擴(kuò)容的時候,會創(chuàng)建 pod ,并且會創(chuàng)建 pod 對應(yīng)的持久卷聲明和持久卷

但是在 Statefulset ? 縮容的時候,只會刪除掉 pod,會留下持久卷聲明和持久卷,這是為什么呢?

相信聰明的小伙伴能夠想到,因為刪除持久化卷之后,數(shù)據(jù)就沒了,對應(yīng)生成環(huán)境中,這可是災(zāi)難呀

用一個圖來形象的描繪一下 Statefulset ? 的這一行為:

Statefulset ? 在進(jìn)行縮容的時候,會刪除掉 pod,但是會留下持久化聲明和持久化卷

Statefulset ? 在擴(kuò)容的時候,又把剛才刪除的 pod-2,給恢復(fù)回來,pod-2 又直接可以使用上之前的 PVC-2 和 PV-2,原來的遺留數(shù)據(jù)仍然在,完好無損

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

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

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

好了,本次就到這里

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

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


Statefulset部署應(yīng)用的評論 (共 條)

分享到微博請遵守國家法律
乌拉特前旗| 小金县| 修武县| 西丰县| 朝阳县| 绥江县| 全椒县| 皋兰县| 孟州市| 安达市| 达拉特旗| 游戏| 吉首市| 鹿邑县| 云南省| 台湾省| 龙里县| 平安县| 岑巩县| 吴桥县| 广平县| 南雄市| 马关县| 宁化县| 大田县| 吉安市| 南皮县| 辉县市| 新乡市| 来凤县| 项城市| 噶尔县| 巴林左旗| 南丰县| 汝州市| 门源| 平江县| 丹江口市| 玛沁县| 廉江市| 蒙山县|