国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k8s之etcd

這篇具有很好參考價(jià)值的文章主要介紹了k8s之etcd。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.特點(diǎn):??

????????etcd 是云原生架構(gòu)中重要的基礎(chǔ)組件。有如下特點(diǎn):

  • 簡(jiǎn)單:安裝配置簡(jiǎn)單,而且提供了 HTTP API 進(jìn)行交互,使用也很簡(jiǎn)單
  • 鍵值對(duì)存儲(chǔ):將數(shù)據(jù)存儲(chǔ)在分層組織的目錄中,如同在標(biāo)準(zhǔn)文件系統(tǒng)中
  • 監(jiān)測(cè)變更:監(jiān)測(cè)特定的鍵或目錄以進(jìn)行更改,并對(duì)值的更改做出反應(yīng)
  • 安全:支持 SSL 證書驗(yàn)證
  • 快速:根據(jù)官方提供的 benchmark 數(shù)據(jù),單實(shí)例支持每秒 2k+ 讀操作
  • 可靠:采用 raft 算法,實(shí)現(xiàn)分布式系統(tǒng)數(shù)據(jù)的可用性和一致性

????????etcd 是一個(gè)高度一致的分布式鍵值存儲(chǔ),它提供了一種可靠的方式來存儲(chǔ)需要由分布式系統(tǒng)或機(jī)器集群訪問的數(shù)據(jù)。它可以優(yōu)雅地處理網(wǎng)絡(luò)分區(qū)期間的 leader 選舉,以應(yīng)對(duì)機(jī)器的故障,即使是在 leader 節(jié)點(diǎn)發(fā)生故障時(shí)

2.使用場(chǎng)景:

????????etcd 比較多的應(yīng)用場(chǎng)景是用于服務(wù)注冊(cè)與發(fā)現(xiàn),除此之外,也可以用于鍵值對(duì)存儲(chǔ),應(yīng)用程序可以讀取和寫入 etcd 中的數(shù)據(jù)。

? ? ? ? 2.1 鍵值對(duì)存儲(chǔ)

????????????????歸根結(jié)底,etcd 是一個(gè)鍵值存儲(chǔ)的組件,其他的應(yīng)用都是基于其鍵值存儲(chǔ)的功能展開。etcd 的存儲(chǔ)有如下特點(diǎn):

  • 采用kv型數(shù)據(jù)存儲(chǔ),一般情況下比關(guān)系型數(shù)據(jù)庫快。
  • 支持動(dòng)態(tài)存儲(chǔ)(內(nèi)存)以及靜態(tài)存儲(chǔ)(磁盤)。
  • 分布式存儲(chǔ),可集成為多節(jié)點(diǎn)集群。
  • 存儲(chǔ)方式,采用類似目錄結(jié)構(gòu)。
  • 只有葉子節(jié)點(diǎn)才能真正存儲(chǔ)數(shù)據(jù),相當(dāng)于文件。
  • 葉子節(jié)點(diǎn)的父節(jié)點(diǎn)一定是目錄,目錄不能存儲(chǔ)數(shù)據(jù)。

????????????????etcd leader 的延遲是要跟蹤的最重要的指標(biāo),并且內(nèi)置儀表板具有專用于此的視圖。在我們的測(cè)試中,嚴(yán)重的延遲會(huì)在群集內(nèi)造成不穩(wěn)定,因?yàn)?Raft 的速度僅與大多數(shù)機(jī)器中最慢的機(jī)器一樣快。我們可以通過適當(dāng)?shù)卣{(diào)整群集來緩解此問題。etcd 已在具有高度可變網(wǎng)絡(luò)的云提供商上進(jìn)行了預(yù)調(diào)

????????2.2 服務(wù)注冊(cè)與發(fā)現(xiàn)

????????????????服務(wù)注冊(cè)與發(fā)現(xiàn)(Service Discovery)要解決的是分布式系統(tǒng)中最常見的問題之一,即在同一個(gè)分布式集群中的進(jìn)程或服務(wù)如何才能找到對(duì)方并建立連接。從本質(zhì)上說,服務(wù)發(fā)現(xiàn)就是要了解集群中是否有進(jìn)程在監(jiān)聽 UDP 或者 TCP 端口,并且通過名字就可以進(jìn)行查找和鏈接。要解決服務(wù)發(fā)現(xiàn)的問題,需要下面三大支柱,缺一不可

k8s之etcd,K8S學(xué)習(xí),kubernetes,etcd,容器

  • 強(qiáng)一致性、高可用的服務(wù)存儲(chǔ)目錄。
    基于 Raft 算法的 etcd 天生就是這樣一個(gè)強(qiáng)一致性、高可用的服務(wù)存儲(chǔ)目錄。
  • 一種注冊(cè)服務(wù)和服務(wù)健康狀況的機(jī)制。
    用戶可以在 etcd 中注冊(cè)服務(wù),并且對(duì)注冊(cè)的服務(wù)配置 key TTL,定時(shí)保持服務(wù)的心跳以達(dá)到監(jiān)控健康狀態(tài)的效果。
  • 一種查找和連接服務(wù)的機(jī)制。通過在 etcd 指定的主題下注冊(cè)的服務(wù)也能在對(duì)應(yīng)的主題下查找到。為了確保連接,我們可以在每個(gè)服務(wù)機(jī)器上都部署一個(gè) Proxy 模式的 etcd,這樣就可以確保訪問 etcd 集群的服務(wù)都能夠互相連接。

? ? ? ? 2.3?消息發(fā)布與訂閱

????????????????在分布式系統(tǒng)中,最適用的一種組件間通信方式就是消息發(fā)布與訂閱。即構(gòu)建一個(gè)配置共享中心,數(shù)據(jù)提供者在這個(gè)配置中心發(fā)布消息,而消息使用者則訂閱他們關(guān)心的主題,一旦主題有消息發(fā)布,就會(huì)實(shí)時(shí)通知訂閱者。通過這種方式可以做到分布式系統(tǒng)配置的集中式管理與動(dòng)態(tài)更新。

????????????????k8s之etcd,K8S學(xué)習(xí),kubernetes,etcd,容器

????????

????????應(yīng)用中用到的一些配置信息放到etcd上進(jìn)行集中管理。這類場(chǎng)景的使用方式通常是這樣:應(yīng)用在啟動(dòng)的時(shí)候主動(dòng)從etcd獲取一次配置信息,同時(shí),在etcd節(jié)點(diǎn)上注冊(cè)一個(gè)Watcher并等待,以后每次配置有更新的時(shí)候,etcd都會(huì)實(shí)時(shí)通知訂閱者,以此達(dá)到獲取最新配置信息的目的。

????????分布式搜索服務(wù)中,索引的元信息和服務(wù)器集群機(jī)器的節(jié)點(diǎn)狀態(tài)存放在etcd中,供各個(gè)客戶端訂閱使用。使用etcd的key TTL功能可以確保機(jī)器狀態(tài)是實(shí)時(shí)更新的。

????????分布式日志收集系統(tǒng)。這個(gè)系統(tǒng)的核心工作是收集分布在不同機(jī)器的日志。收集器通常是按照應(yīng)用(或主題)來分配收集任務(wù)單元,因此可以在etcd上創(chuàng)建一個(gè)以應(yīng)用(主題)命名的目錄P,并將這個(gè)應(yīng)用(主題相關(guān))的所有機(jī)器ip,以子目錄的形式存儲(chǔ)到目錄P上,然后設(shè)置一個(gè) etcd 遞歸的Watcher,遞歸式的監(jiān)控應(yīng)用(主題)目錄下所有信息的變動(dòng)。這樣就實(shí)現(xiàn)了機(jī)器IP(消息)變動(dòng)的時(shí)候,能夠?qū)崟r(shí)通知到收集器調(diào)整任務(wù)分配。

????????系統(tǒng)中信息需要?jiǎng)討B(tài)自動(dòng)獲取與人工干預(yù)修改信息請(qǐng)求內(nèi)容的情況。通常是暴露出接口,例如JMX接口,來獲取一些運(yùn)行時(shí)的信息。引入etcd之后,就不用自己實(shí)現(xiàn)一套方案了,只要將這些信息存放到指定的etcd目錄中即可,etcd的這些目錄就可以通過HTTP的接口在外部訪問

? ? ? ? 2.4?分布式通知與協(xié)調(diào)

????????這里說到的分布式通知與協(xié)調(diào),與消息發(fā)布和訂閱有些相似。在分布式系統(tǒng)中,最適用的一種組件間通信方式就是消息發(fā)布與訂閱。即構(gòu)建一個(gè)配置共享中心,數(shù)據(jù)提供者在這個(gè)配置中心發(fā)布消息,而消息使用者則訂閱他們關(guān)心的主題,一旦主題有消息發(fā)布,就會(huì)實(shí)時(shí)通知訂閱者。通過這種方式可以做到分布式系統(tǒng)配置的集中式管理與動(dòng)態(tài)更新。

????????這里用到了etcd中的Watcher機(jī)制,通過注冊(cè)與異步通知機(jī)制,實(shí)現(xiàn)分布式環(huán)境下不同系統(tǒng)之間的通知與協(xié)調(diào),從而對(duì)數(shù)據(jù)變更做到實(shí)時(shí)處理。實(shí)現(xiàn)方式通常是這樣:不同系統(tǒng)都在etcd上對(duì)同一個(gè)目錄進(jìn)行注冊(cè),同時(shí)設(shè)置Watcher觀測(cè)該目錄的變化(如果對(duì)子目錄的變化也有需要,可以設(shè)置遞歸模式),當(dāng)某個(gè)系統(tǒng)更新了etcd的目錄,那么設(shè)置了Watcher的系統(tǒng)就會(huì)收到通知,并作出相應(yīng)處理。

????????通過etcd進(jìn)行低耦合的心跳檢測(cè)。檢測(cè)系統(tǒng)和被檢測(cè)系統(tǒng)通過etcd上某個(gè)目錄關(guān)聯(lián)而非直接關(guān)聯(lián)起來,這樣可以大大減少系統(tǒng)的耦合性

k8s之etcd,K8S學(xué)習(xí),kubernetes,etcd,容器

????????通過etcd完成系統(tǒng)調(diào)度。某系統(tǒng)有控制臺(tái)和推送系統(tǒng)兩部分組成,控制臺(tái)的職責(zé)是控制推送系統(tǒng)進(jìn)行相應(yīng)的推送工作。管理人員在控制臺(tái)作的一些操作,實(shí)際上是修改了etcd上某些目錄節(jié)點(diǎn)的狀態(tài),而etcd就把這些變化通知給注冊(cè)了Watcher的推送系統(tǒng)客戶端,推送系統(tǒng)再作出相應(yīng)的推送任務(wù)。

????????通過etcd完成工作匯報(bào)。大部分類似的任務(wù)分發(fā)系統(tǒng),子任務(wù)啟動(dòng)后,到etcd來注冊(cè)一個(gè)臨時(shí)工作目錄,并且定時(shí)將自己的進(jìn)度進(jìn)行匯報(bào)(將進(jìn)度寫入到這個(gè)臨時(shí)目錄),這樣任務(wù)管理者就能夠?qū)崟r(shí)知道任務(wù)進(jìn)度。

? ? ? ? 2.5?分布式鎖

????????當(dāng)在分布式系統(tǒng)中,數(shù)據(jù)只有一份(或有限制),此時(shí)需要利用鎖的技術(shù)控制某一時(shí)刻修改數(shù)據(jù)的進(jìn)程數(shù)。與單機(jī)模式下的鎖不僅需要保證進(jìn)程可見,分布式環(huán)境下還需要考慮進(jìn)程與鎖之間的網(wǎng)絡(luò)問題。

????????分布式鎖可以將標(biāo)記存在內(nèi)存,只是該內(nèi)存不是某個(gè)進(jìn)程分配的內(nèi)存而是公共內(nèi)存如 Redis、Memcache。至于利用數(shù)據(jù)庫、文件等做鎖與單機(jī)的實(shí)現(xiàn)是一樣的,只要保證標(biāo)記能互斥就行。

????????因?yàn)閑tcd使用Raft算法保持了數(shù)據(jù)的強(qiáng)一致性,某次操作存儲(chǔ)到集群中的值必然是全局一致的,所以很容易實(shí)現(xiàn)分布式鎖。鎖服務(wù)有兩種使用方式,一是保持獨(dú)占,二是控制時(shí)序。

k8s之etcd,K8S學(xué)習(xí),kubernetes,etcd,容器

????????保持獨(dú)占即所有獲取鎖的用戶最終只有一個(gè)可以得到。etcd為此提供了一套實(shí)現(xiàn)分布式鎖原子操作CAS(CompareAndSwap)的API。通過設(shè)置prevExist值,可以保證在多個(gè)節(jié)點(diǎn)同時(shí)去創(chuàng)建某個(gè)目錄時(shí),只有一個(gè)成功。而創(chuàng)建成功的用戶就可以認(rèn)為是獲得了鎖。

????????控制時(shí)序,即所有想要獲得鎖的用戶都會(huì)被安排執(zhí)行,但是獲得鎖的順序也是全局唯一的,同時(shí)決定了執(zhí)行順序。etcd為此也提供了一套API(自動(dòng)創(chuàng)建有序鍵),對(duì)一個(gè)目錄建值時(shí)指定為POST動(dòng)作,這樣etcd會(huì)自動(dòng)在目錄下生成一個(gè)當(dāng)前最大的值為鍵,存儲(chǔ)這個(gè)新的值(客戶端編號(hào))。同時(shí)還可以使用API按順序列出所有當(dāng)前目錄下的鍵值。此時(shí)這些鍵的值就是客戶端的時(shí)序,而這些鍵中存儲(chǔ)的值可以是代表客戶端的編號(hào)文章來源地址http://www.zghlxwxcb.cn/news/detail-857002.html

到了這里,關(guān)于k8s之etcd的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • k8s中部署etcd集群

    ? ? ? ? Etcd是一個(gè)高可用的 、 開源的、分布式的Key/value存儲(chǔ)系統(tǒng) , 提供共享配置、服務(wù)的注冊(cè)和發(fā)現(xiàn)、數(shù)據(jù)TTL失效、數(shù)據(jù)改變監(jiān)視、多值、目錄監(jiān)聽、分布式原子鎖操作等功能 。 通常,k8s使用etcd進(jìn)行數(shù)據(jù)存儲(chǔ),本文將部署etcd集群用做應(yīng)用的存儲(chǔ)。 一、前提 ? ? ? ? 部

    2024年02月08日
    瀏覽(24)
  • K8S核心組件etcd詳解(上)

    K8S核心組件etcd詳解(上)

    https://etcd.io/docs/v3.5/ etcd是一個(gè)高可用的分布式鍵值存儲(chǔ)系統(tǒng),是CoreOS(現(xiàn)在隸屬于Red Hat)公司開發(fā)的一個(gè)開源項(xiàng)目。它提供了一個(gè)簡(jiǎn)單的接口來存儲(chǔ)和檢索鍵值對(duì)數(shù)據(jù),并使用Raft協(xié)議實(shí)現(xiàn)了分布式一致性。etcd廣泛應(yīng)用于Docker、Kubernetes等分布式系統(tǒng)中,用于存儲(chǔ)配置信息、

    2024年02月12日
    瀏覽(26)
  • K8S核心組件etcd詳解(下)

    K8S核心組件etcd詳解(下)

    1 k8s如何使用etcd 在k8s中所有對(duì)象的manifest都需要保存到某個(gè)地方,這樣他們的manifest在api server重啟和失敗的時(shí)候才不會(huì)丟失。 只有api server能訪問etcd,其它組件只能間接訪問etcd的好處是 增強(qiáng)樂觀鎖系統(tǒng)及驗(yàn)證系統(tǒng)的健壯性 方便后續(xù)存儲(chǔ)的替換,只需修改api server組件的相關(guān)接

    2024年02月12日
    瀏覽(19)
  • k8s的etcd啟動(dòng)報(bào)錯(cuò)

    電腦休眠狀態(tài)意外斷電導(dǎo)致虛擬機(jī)直接進(jìn)入關(guān)機(jī)狀態(tài)。 kubectl命令報(bào)錯(cuò) kubelet服務(wù)報(bào)錯(cuò) 6443端口無任何程序監(jiān)聽,判斷可能是etcd出現(xiàn)了故障 master節(jié)點(diǎn)上的容器 鏡像都存在 ps -a看到退出的容器 etcd容器報(bào)錯(cuò) 是由于恢復(fù)快照數(shù)據(jù)失敗。查看其他兩個(gè)節(jié)點(diǎn)是否也有同樣報(bào)錯(cuò)。 幸運(yùn)的

    2024年02月01日
    瀏覽(17)
  • 在k8s中,etcd有什么作用?

    在Kubernetes(K8s)中,etcd 是一個(gè)關(guān)鍵的組件,它扮演著集群狀態(tài)存儲(chǔ)的角色,具有以下作用: 分布式鍵值存儲(chǔ):etcd 是一個(gè)分布式鍵值存儲(chǔ)系統(tǒng),用于存儲(chǔ)整個(gè) Kubernetes 集群的配置信息、狀態(tài)信息以及元數(shù)據(jù)。這包括了集群的配置、節(jié)點(diǎn)信息、Pod 和服務(wù)的狀態(tài)、配置文件、網(wǎng)

    2024年02月06日
    瀏覽(14)
  • k8s集群中etcd的備份與恢復(fù)

    創(chuàng)建備份目錄mkdir /var/lib/etcd_backup 從etcd中的一個(gè)正常節(jié)點(diǎn)上備份etcd數(shù)據(jù) 停止所節(jié)點(diǎn)的kube-apiserver和etcd 備份原始etcd的路徑中的文件 所有節(jié)點(diǎn)恢復(fù)etcd數(shù)據(jù)庫 master01執(zhí)行{etcd01節(jié)點(diǎn)} work01執(zhí)行{etcd02節(jié)點(diǎn)} work02執(zhí)行{etcd03節(jié)點(diǎn)} 為目錄賦予權(quán)限 每個(gè)節(jié)點(diǎn)啟動(dòng)etcd 查看狀態(tài) 啟動(dòng)kubeapi

    2024年02月11日
    瀏覽(26)
  • k8s無法正常啟動(dòng)使用,排查:etcd損壞

    k8s無法正常啟動(dòng)使用,排查:etcd損壞

    問題: 在跑項(xiàng)目的時(shí)候,機(jī)器意外斷電了,重啟后發(fā)現(xiàn)kubectl無法使用,報(bào)錯(cuò)如下: 排查: 1、 Unable to register node with API server\\\" err=“Post “https://192.168.18.101:6443/api/v1/nodes”: dial tcp 192.168.18.101:6443: connect: connection refused” node=\\\"k8s-master01 發(fā)現(xiàn)連接不到apiserver 2、然后我到docker容器

    2024年02月07日
    瀏覽(22)
  • K8s組件:etcd安裝、使用及原理(Linux)

    K8s組件:etcd安裝、使用及原理(Linux)

    1.1 介紹 分布式系統(tǒng)架構(gòu)中對(duì)一致性要求很高,etcd就滿足了分布式系統(tǒng)中的一致性要求。 實(shí)現(xiàn)了分布式一致性鍵值對(duì)存儲(chǔ)的中間件,支持跨平臺(tái),有活躍的社區(qū)。 etcd 是基于go實(shí)現(xiàn)的一個(gè)分布式鍵值對(duì)存儲(chǔ)(類比Redis),設(shè)計(jì)用來可靠而快速的保存關(guān)鍵數(shù)據(jù)并提供訪問。通過分布

    2024年02月03日
    瀏覽(23)
  • k8s-1.22.3集群etcd備份與恢復(fù)

    kubeadm-1.22.3-0.x86_64 kubelet-1.22.3-0.x86_64 kubectl-1.22.3-0.x86_64 kubernetes-cni-0.8.7-0.x86_64 主機(jī)名 IP VIP k8s-master01 192.168.10.61 192.168.10.70 k8s-master02 192.168.10.62 k8s-master03 192.168.10.63 k8s-node01 192.168.10.64 k8s-node02 192.168.10.65 注:etcd最新的API版本是v3,與v2相比,v3更高效更清晰。k8s默認(rèn)使用的etcd

    2024年02月13日
    瀏覽(29)
  • k8s外接etcd集群服務(wù)異常,使用snapshot恢復(fù)etcd集群

    k8s外接etcd集群服務(wù)異常,使用snapshot恢復(fù)etcd集群

    master節(jié)點(diǎn) 主機(jī) IP 版本 master01 192.168.66.50 k8s-1.23.17 master02 192.168.66.55 k8s-1.23.17 master03 192.168.66.56 k8s-1.23.17 etcd集群節(jié)點(diǎn) 主機(jī) IP 版本 etcd01 192.168.66.58 3.5.6 etcd02 192.168.66.59 3.5.6 etcd03 192.168.66.57 3.5.6 生產(chǎn)環(huán)境中我們?yōu)榱吮苊獬霈F(xiàn)誤操作或者是服務(wù)器硬件出見異常導(dǎo)致宕機(jī),我們的虛擬

    2024年01月17日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包