欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Rainbond部署組件Statefulset的使用官方文檔

 更新時間:2022年04月20日 14:48:35   作者:官方文檔  
這篇文章主要為大家介紹了官方文檔Rainbond部署組件Statefulset的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

對于kubernetes老玩家而言,StatefulSet這種資源類型并不陌生。對于很多有狀態(tài)服務而言,都可以使用 StatefulSet 這種資源類型來部署。那么問題來了:挖掘機技術(shù)哪家強?額,不對。

如何在 Rainbond 使用 StatefulSet 資源類型來部署服務呢?

組件部署類型

通過在服務組件的其他設(shè)置中,更改 組件部署類型 即可選擇使用 StatefulSet 資源類型部署服務,操作之前要注意以下幾點:

  • 組件需要處于關(guān)閉的狀態(tài);
  • 對于有持久化存儲的服務組件,切換組件部署類型會導致存儲掛載的變更,一定要做好數(shù)據(jù)備份;

Rainbond 默認提供四種組件部署類型:

  • 有狀態(tài)單實例:使用 StatefulSet 部署服務,不可以進行實例的橫向伸縮,實例數(shù)量始終為1;
  • 有狀態(tài)多實例:使用 StatefulSet 部署服務,實例數(shù)量可以進行橫向伸縮;
  • 無狀態(tài)單實例:使用 Deployment 部署服務,不可以進行實例的橫向伸縮,實例數(shù)量始終為1;
  • 無狀態(tài)多實例:使用 Deployment 部署服務,實例數(shù)量可以進行橫向伸縮;

當你在 Rainbond 中將組件部署類型指定為有狀態(tài) (StatefulSet) 之后,服務組件將體現(xiàn)以下特性:

  • 多實例狀態(tài)下,所有實例將具備順序性,實例的命名將類似于 gr6ec114-0 gr6ec114-1 ,這一順序性將體現(xiàn)為全生命周期的層面,順序的啟動、更新、重啟、關(guān)閉。
  • 上述的主機名在集群中將可以被解析,同團隊下,嘗試在任意 POD 中執(zhí)行nslookup gr6ec114-0。不同團隊下,需要指定命名空間,可解析地址的完全地址為:gr6ec114-0.gr6ec114.3be96e95700a480c9b37c6ef5daf3566.svc.cluster.local 其中 3be96e95700a480c9b37c6ef5daf3566 為命名空間。
  • 多實例狀態(tài)下,每個實例的持久化存儲將被單獨掛載,這意味著持久化數(shù)據(jù)在實例之間不再共享。
  • 單實例狀態(tài)下,執(zhí)行更新操作時,實例將會在完全關(guān)閉之后,啟動新的實例,這意味著服務會出現(xiàn)中斷。
  • 出于對持久化數(shù)據(jù)一致性的保護,運行了有狀態(tài)服務的 k8s 節(jié)點一旦失去和管理節(jié)點的聯(lián)絡(luò),處于 notready 狀態(tài)時,其有狀態(tài)服務的實例不會自動遷移。

整體來看,利用 StatefulSet 資源類型來部署服務,帶來了新的特性的同時,會顯得呆板了一些,但接下來的探討,會發(fā)現(xiàn)這些限制是有意義的。

細心如你一定會發(fā)現(xiàn),我們將 StatefulSet 這種資源類型和 “有狀態(tài)” 綁定在了一起。那么,一個新的問題冒了出來:什么是服務的 “狀態(tài)”。

服務的“狀態(tài)”

有狀態(tài)(Stateful)服務 = 無狀態(tài)(Stateless)的應用程序 + 有狀態(tài)的數(shù)據(jù)

從有狀態(tài)服務的名字就可以看出, 它和 StatefulSet 這種資源類型是有關(guān)聯(lián)的。

單純說概念,可能很難理解什么是有狀態(tài)服務。讓我來舉幾個例子:

  • 最常見的有狀態(tài)服務,就是DB類的數(shù)據(jù)庫中間件。

對于常見數(shù)據(jù)庫 Mysql 而言,同一份數(shù)據(jù),在同一時刻只可以被一個 Mysql 程序使用。Mysql 在啟動后,會在自己的數(shù)據(jù)目錄下生成唯一的鎖文件,并把這個文件“鎖死”。這樣一來,其他想要使用這份數(shù)據(jù)的 Mysql 程序,會因為發(fā)現(xiàn)這個鎖文件被“鎖死”,而中斷啟動的過程。這樣做的好處,是保證了數(shù)據(jù)的強一致性,因為同一份數(shù)據(jù)在同一時刻,絕對只會被同一個 Mysql 應用程序所讀寫。

請回憶下 StatefulSet 資源類型帶來的特性之一就是每個實例都會掛載獨立的持久化存儲,這樣可以確保 Mysql 服務可以被擴展成多個實例運行起來,不會因為鎖文件的原因被終止啟動,但是因為彼此之間數(shù)據(jù)不共享,所以本質(zhì)上實例之間沒有什么關(guān)系。使用有狀態(tài)單實例的方式運行 Mysql 看起來是最正確的選擇。

情況類似的常見數(shù)據(jù)庫中間件還有 Mongo、Postgresql、Redis、Etcd等。

  • 另一種常見的有狀態(tài)服務場景,是 Web 類的服務提供的粘性 Session。

這種粘性 Session 在某些情況下會保存在內(nèi)存中,用來提供會話保持,本身也是一種數(shù)據(jù)。一旦將這種服務擴展多個實例,一旦訪問到不正確的實例,那么就會因為找不到 Session 而丟失登陸態(tài)。在負載均衡中使用 IP Hash 算法進行流量的分發(fā)可以在某種程度上解決這個問題,來自同個 IP 的流量會被分發(fā)到指定的實例。但是我們更希望流量的分發(fā)是輪詢的,這樣可以確保每個實例的負載都是相近的,不會出現(xiàn)某個實例負載過高,而其他實例無所事事的情況。

這兩種有狀態(tài)服務場景,都向我們指出,對有狀態(tài)服務而言,不同實例的數(shù)據(jù)是相互獨立的。數(shù)據(jù)即“狀態(tài)”。

相比較而言,無狀態(tài)的服務就靈活很多。它們沒有持久化數(shù)據(jù),或者持久化數(shù)據(jù)支持共享。對于客戶端而言,請求哪一個實例獲得的返回都是一致的。這樣的特性意味著可以隨意擴展無狀態(tài)服務的實例數(shù)量,靈活的應對流量。

使用云服務最大的好處之一,就是它提供的彈性和靈活性,在業(yè)務遭遇流量高峰時,可以快速擴展實例進行應對。從這個角度出發(fā),我們希望服務都是 “無狀態(tài)” 的。那么,一個新的問題冒了出來:我們可以去掉服務的 “狀態(tài)”,使之變成無狀態(tài)服務么?

處理服務的 “狀態(tài)”

利用粘性 Session 保持登陸態(tài)的這類 Web 服務,其狀態(tài)是可以被去掉的。

原理比較簡單,把 Session 和 Web 應用程序剝離,存儲到其他中間件中去即可,比如保存到Mysql、 Redis、Memcached等數(shù)據(jù)庫中間件中去。市面上常見的 Web 框架都會支持這種功能,甚至把這種處理方式作為默認選項,因為這實在太棒了!

處理完的 Web 服務,就變成了無狀態(tài)服務,可以任意擴展實例數(shù)量了。來自客戶端的請求無論被分配到哪一個實例,其登陸態(tài)都到后端數(shù)據(jù)庫中調(diào)取,返回正確的登陸態(tài)。在部署時,可以選擇無狀態(tài)多實例進行部署,即使用 Deployment 這種資源類型。

但是對于DB類的數(shù)據(jù)庫中間件而言,其狀態(tài)是不可以被隨意去除的。

原因在于這類數(shù)據(jù)庫中間件使用自己的機制來確保數(shù)據(jù)強一致性,就比如 Mysql 的鎖文件機制,指定的實例只能去讀寫對應自己的那一份數(shù)據(jù)。對這一類有狀態(tài)服務而言,每個實例獨享一份持久化數(shù)據(jù)可以算作是必須的條件。并且隨意擴展實例數(shù)量,會遭遇很多致命的問題:比如數(shù)據(jù)不一致,或者程序運行失敗等等。這一類的有狀態(tài)服務只能單點部署嗎?

這些數(shù)據(jù)庫中間件的出品廠商或者社區(qū),也都很關(guān)注如何實現(xiàn)高可用方案,來解決上述的問題。甚至近些年推出的數(shù)據(jù)庫中間件,在設(shè)計階段就會被設(shè)計成分布式架構(gòu)。比如 Etcd 對自己的定義就是:可靠的強一致性分布式鍵值數(shù)據(jù)庫。其內(nèi)部使用 Raft 協(xié)議進行實例間選舉來明確統(tǒng)一的leader。而對于 Mysql 這樣比較老牌的數(shù)據(jù)庫中間件,也具備基于 Binlog 復制實現(xiàn)的主從集群方案。

所以針對這一類無法去除狀態(tài)的服務而言,我們的思路與宗旨,就是遵循其自身支持的集群方案,來實現(xiàn)高可用以及實例數(shù)量擴展。

實際部署這些集群方案時,可以總結(jié)出,大多數(shù)集群方案需要滿足以下條件:

  • 每個實例掛載單獨的持久化數(shù)據(jù);
  • 實例間需要獲取彼此的通信地址,來進行選舉或者數(shù)據(jù)同步等動作,比如可解析的主機名或域名。獲取地址時一定要使用主機名或域名而非實例 IP,因為隨著實例的重啟,主機名或域名不會改變,但是IP可能會改變,這很重要;
  • 實例數(shù)量是有要求的,一般情況下選擇 3、5、7··· 等奇數(shù),來保證集群不會出現(xiàn)腦裂;

回想一下 StatefulSet 資源類型的特性,它可以滿足上述的所有條件,就是為了有狀態(tài)服務而生的。所以這一類有狀態(tài)服務,其組件部署類型無論如何要使用有狀態(tài)單/多實例。

以上就是Rainbond部署組件Statefulset的使用官方文檔的詳細內(nèi)容,更多關(guān)于Rainbond部署組件Statefulse官方文檔的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Kubernetes中創(chuàng)建命名空間實現(xiàn)方法

    Kubernetes中創(chuàng)建命名空間實現(xiàn)方法

    這篇文章主要為大家介紹了Kubernetes中創(chuàng)建命名空間實現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 一篇文章搞懂K8S高級特性

    一篇文章搞懂K8S高級特性

    這篇文章主要給大家介紹了關(guān)于K8S高級特性的相關(guān)資料,文中通過時實例代碼以及圖文介紹的非常詳細,對大家學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2021-11-11
  • k8s編排之DaemonSet知識點詳解

    k8s編排之DaemonSet知識點詳解

    這篇文章主要為大家介紹了k8s編排之DaemonSet知識點詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • K8s準入控制Admission?Controller深入介紹

    K8s準入控制Admission?Controller深入介紹

    本篇我們將聚焦于?kube-apiserver?請求處理過程中一個很重要的部分?--?準入控制器(Admission?Controller)深入講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • 2022最新青龍面板對接機器人的詳細過程(傻妞對接onebot(oicq)協(xié)議實現(xiàn)機器人功能)

    2022最新青龍面板對接機器人的詳細過程(傻妞對接onebot(oicq)協(xié)議實現(xiàn)機器人功能)

    這篇文章主要介紹了2022最新青龍面板對接機器人的詳細過程(傻妞對接onebot(oicq)協(xié)議實現(xiàn)機器人功能),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • Rainbond功能架構(gòu)及應用管理官方文檔介紹

    Rainbond功能架構(gòu)及應用管理官方文檔介紹

    這篇文章主要為大家介紹了Rainbond功能機構(gòu)及使用官方文檔,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04
  • 詳解k8s?NetworkPolicy?網(wǎng)絡(luò)策略是怎么樣的

    詳解k8s?NetworkPolicy?網(wǎng)絡(luò)策略是怎么樣的

    這篇文章主要為大家介紹了k8s?NetworkPolicy?網(wǎng)絡(luò)策略是怎么樣的深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • kubernetes之statefulset搭建MySQL集群

    kubernetes之statefulset搭建MySQL集群

    這篇文章主要為大家介紹了kubernetes之statefulset搭建MySQL集群示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Kubernetes控制器中DaemonSet與Job的使用教程

    Kubernetes控制器中DaemonSet與Job的使用教程

    這篇文章主要介紹了Kubernetes控制器中DaemonSet與Job的使用,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Rainbond對微服務進行請求速率限制詳解

    Rainbond對微服務進行請求速率限制詳解

    這篇文章主要為大家介紹了Rainbond對微服務進行請求速率限制,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-04-04

最新評論