91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在生產過程中監控Kubernetes

發布時間:2021-12-28 16:24:38 來源:億速云 閱讀:129 作者:小新 欄目:云計算

這篇文章給大家分享的是有關如何在生產過程中監控Kubernetes的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

監測Kubernetes組件

監測Kubernetes集群不是一個簡單的事情。為了闡述可能會發生的錯誤的類型,這里是我們在AWS配置上的一個例子。


我們集群中的一個例子完美展示了用SkyDNS運行以及所有pods啟動的健康狀態,然而,在幾分鐘之后,SkyDNS就進入“CrashLoopBackoff”狀態了。應用程序容器已經是啟動的,但是還在功能失調階段,因為他們在第一次重新啟動的時候無法到達數據庫。


結果原來是集群宕機,但是我們只能盯著事件和pods狀態,對于發生了什么無法得到一個清晰的理解。

如何在生產過程中監控Kubernetes

在聯系到主節點,看了SkyDNS pod的日志之后,他們用etcd揭露一個問題。SkyDNS無法連接,或者連接在它建立之后立刻變得不穩定了。etcd它本身就是在運行的,那么問題是出在哪里呢?


在做了相當一部分的調查之后,我們找到了answer。高延遲網絡連接磁盤導致讀寫錯誤,這就導致了etcd無法寫到文件系統。雖然它是正確配置而且也在運行工作,但是它并不是一直可為Kubernetes服務所用。


吸取教訓——即使你已經成功地建立起集群,但也不能保證它就可以像預期的那樣繼續工作。
那么在配置期間哪些問題比較容易出錯呢?問題主要有以下這些:

  • 主機之間沒有聯系

  • etcd宕機或者不穩定/錯誤配置導致滯后

  • 主機間的覆蓋網絡層損壞

  • 單個節點中的任意一個都會宕機

  • Kubernetes API服務器或者控制器管理者宕機

  • Docker無法啟動容器

  • 網絡分割會影響節點子集

我們在跟第一屆KubeCon的參加者交流了一些意見,頭腦風暴出以下可能的解決辦法:

你怎樣評估Kubernetes集群的健康?@klizhenas建議創建一個能夠給pods進行調度以及取消調度的app;有沒有人創建一下這個?

——Brandon Philips(@Brandon  Philips)2015年11月11日

我們評估一下來監控Kubernetes的方法:
典型監測;
面向應用的冒煙測試

典型監測解決辦法

傳統的監控監測方法還沒有出現短缺。這個種類之中最好的選擇之一就是monit。


這是一個極其輕便精簡(單個執行文件),而且久經戰場的后臺程序運行在成千上萬臺機器上面——為小的起步但是是限制到監測單個系統。這是它最大的缺點。


使用monit過程中發現的問題之一就是一組測試執行有限和拓展性的缺乏。雖然可配置,但是我們還是不得不通過寫腳本來拓展它的功能,或者通過微弱的界面來使特殊目的程序得到控制。


更加重要的是,我們發現,連接幾個monit實例到一個高可用系統和彈性網絡是非常難的,而且系統和網絡還要代理收集自己分享的信息,然后協同工作來另這些信息保持更新。

冒煙類型測試

“冒煙測試”這個術語的定義:


“一系列初步的測試來揭示一些簡單的故障的嚴重性,以此來拒絕預期中軟件的發布。它通常包含一個子集的測試,測試覆蓋了大多數重要的作用來確定重要作用在按照預期運行。冒煙測試最頻繁的特點就是它運行的很快,通常是秒級的。”


以我們已有的Kubernetes知識,我們堅信我們可以使用冒煙測試用以下特點來創建一個監視系統:

  • 輕量級定期測試

  • 高可用性和彈性網絡分區

  • 零故障操作環境

  • 時間序列作為健康數據的歷史

不管故障容易發生的抽象層次,就算是應用程序故障,或者是低層次網絡錯誤,這個系統都能夠追蹤他們以查到實際的原因。

Serf啟動的監測Agents

我們的高層次解決方案是一系列程序Agent,一個集群中的一個節點駐留在另一個節點上。他們互相之間通過一個Serf提供的gossip協議來交流:

如何在生產過程中監控Kubernetes

Kubernetes關鍵組件的Agents監控狀態——etcd,scheduler,API服務器和另外一些東西,還有一些執行冒煙程序——創建可以互相交流的輕量級容器。

如何在生產過程中監控Kubernetes

Agent定期同步數據,這樣每個節點都是隨時更新關于集群作為一個整體的信息。由于Serf提供的一致性保證比較弱,導致更新信息也不是很嚴格。定期測試結果保存到后端——這可以很簡單,就如同一個SQLite數據庫或者InfluxDB等一系列實時數據庫。


擁有一個對等系統對偵測故障和監測信息十分有幫助,即使系統中的關鍵部分部分宕機也沒有關系。在下面的例子中,主要節點以及大部分的節點都已經宕機,這就導致etcd也出了故障。然而,我們仍然可以得到關于集群連接到以下任意一個節點的診斷信息:

如何在生產過程中監控Kubernetes

這里是在部分損壞的系統截圖:

如何在生產過程中監控Kubernetes

限制

由于它的簡易,目前的模型就有了一定的限制。如果是為更小一些的集群(比如8個節點)就可以運行,然而,在一個再大一點的集群,你就不想每個節點都可以互相交流了。這個解決方式就是我們計劃采取的方案是創建一個特殊的聚合器,從Skype的超級節點那里或者是從Consul的“anti-entropy catelogs上面借鑒一些想法。

結語

監測Kubernetes集群的狀態不是直接使用傳統監測工具就可以了的。手動故障排除有一定的復雜性,在集群里有一個自動反饋循環的話,就可以消除很大部分的復雜性。Satellite項目已經證明當操作集群的時候對我們是有用的,所以我們決定對它進行開源,希望它可以成為一個幫助提升kubernetes發現錯誤系統。 

感謝各位的閱讀!關于“如何在生產過程中監控Kubernetes”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台东市| 达日县| 平罗县| 子长县| 和龙市| 康马县| 南岸区| 宾阳县| 和林格尔县| 山丹县| 固始县| 鄂托克前旗| 论坛| 禹城市| 镇康县| 南乐县| 丰宁| 武清区| 赞皇县| 逊克县| 上饶县| 马山县| 怀化市| 绿春县| 普定县| 都江堰市| 南漳县| 东兴市| 沾化县| 明水县| 怀柔区| 榆林市| 海口市| 武川县| 理塘县| 扎鲁特旗| 麦盖提县| 安庆市| 亚东县| 大庆市| 汕头市|