亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

技術進階:Kubernetes高級架構與應用狀態部署

發布時間:2020-07-08 13:15:08 來源:網絡 閱讀:219 作者:CCE華為云 欄目:云計算

在了解Kubernetes應用狀態部署前,我們先看看Kubernetes的高級架構,方便更好的理解Kubernetes的狀態。

Kubernetes 的高級架構

包括應用程序部署模型,服務發現和負載均衡,內部/外部路由分離、persistentvolume 的使用,部署節點守護程序,部署有狀態分布式系統,作業后臺運行,部署數據庫,配置管理,憑證管理,滾動更新,自動縮放和包管理。
A、Kubernetes的基本設計策略之一就是,無需更改應用程序代碼,就能部署在虛擬機上運行的現有應用程序。另外,任何運行在虛擬機上的應用程序都可以通過容器化組件在 Kubernetes 上實現部署。這是通過容器分組、容器編排、覆蓋網絡、基于第 4 層虛擬IP、服務發現、支持守護程序運行、部署有狀態應用程序組件、以及擴展容器編排系統這些核心功能實現的。
B、Kubernetes 可以提供一組可動態擴展的主機,可以應用容器運行 workload,并使用一組稱為 master 的管理主機來提供管理整個容器基礎架構的 API。這些 workload 包括長期運行服務,批處理作業和容器主機的守護程序。為了提供容器到容器的路由,所有容器主機都用覆蓋網絡連接在一起。部署在 Kubernetes 上的應用程序在集群網絡中是動態可見的,并可通過傳統負載均衡器向外部網絡暴露。集群管理器的狀態存儲在一個高度分布的 key/value 存儲(etcd)中,該存儲在 master上運行。

Kubernetes應用狀態部署
在K8s運行的服務,分為無狀態服務和有狀態服務,下面分別看看K8s是如何運行這兩類不同的服務的

01“無狀態”服務

無狀態服務,即 Web 服務器、代理和應用程序代碼這樣的應用程序,它們可以處理數據但不進行存儲。編排過程中,開發者比較喜歡使用它們,因為它們易于部署且易于擴展。如果流量上升,則只需添加更多的負載平衡。更重要的是,它們是“不變動的”;上游容器鏡像和基礎架構中正在運行的容器其實幾乎沒有區別。這意味著它們可以隨時被替代,而且容器實例切換過程中幾乎不需要耗費“切換成本”。
無狀態服務,K8s使用Replicaset來保證一個服務的實例數量,如果說某個Pod實例由于某個原因被crash了,RC會立即用一個Pod的模板新啟一個Pod來替代它,由于是無狀態的服務,新啟的Pod與原來健康狀態下的Pod是一模一樣。當Pod被重建后它的IP地址可能發生變化,為了對外提供一個穩定的訪問接口,K8s引入了Service的概念,一個Service后面可以掛多個Pod,實現服務的高可用。
在Kubernetes中,Deployment和Replicasets都是運用無狀態服務的有效手段。

02"有狀態"服務

有狀態的服務,即路由器、CDN(內容傳送網絡)、streaming 服務器和認證服務器。從部署開始,這些容器就開始與上游鏡像不同了,時間越長它們的差異越大。這種差異就被稱為“state(狀態)”。事實上,每個運行的應用程序都至少有一個小狀態(差異),但對于“無狀態”應用程序來說,狀態(差異)很小,而且可以進行快速替換。
普通有狀態服務,和無狀態服務相比,它多了狀態保存的需求,K8s提供了以Volmume和Peristent Volmume為基礎的存儲系統,可以實現服務的狀態保存。
而在容器化應用程序最困難的任務之一,就是設計有狀態分布式組件的部署體系結構。由于無狀態組件可能沒有預定義的啟動順序、集群要求、點對點 TCP 連接、唯一的網絡標識符、正常的啟動和終止要求等,因此可以很容易地進行容器化。諸如數據庫,大數據分析系統,分布式 key/value 存儲和 message brokers 可能有復雜的分布式體系結構,都可能用到上述功能。
Kubernetes 引入了 StatefulSets 資源來支持這種復雜的需求,用來管理POD部署和擴容,并為這些pod提供順序和唯一性的保證。

03 StatefulSet部署—有狀態應用

用于解決各個pod實例獨立生命周期管理,提供各個實例的啟動順序和唯一性。
使用StatefulSet的前提是:
1、Kubernetes集群的版本≥1.5;
2、安裝好DNS集群插件,版本≥15。

StatefulSet為什么適合有狀態的程序,看看它的特性:

A、穩定,唯一的網絡標識符。可以發現集群內部的其他成員。
B、穩定的持久化存儲。通過Kubernetes的PV/PVC或者外部存儲(預先提供)來實現。
C、啟動或關閉時有序。有序的,優雅的部署和擴展。有序,優雅的刪除和終止。有序的自動滾動更新。實現部署和擴容保證。

04運用StatefulSet會帶來什么好處呢?
部署和擴容的保證
對于帶有N個副本集的StatefulSet,當pod被部署,它們將按0到N-1的順序被創建。
當一Pod被刪除時,它們將按照N-1到0的順序被終止。
在進行Pod擴容前,所有依賴的Pod應該都已在運行和準備好。
在Pod被終止前,所有的依賴它的Pod都必須完全停止。

如果你的系統是微服務構成的生態系統,就會比較繁瑣的交付新服務,如果更近一步,服務是有狀態的,那么kubernetes的自動化和健壯性特性會對你有很大的幫助,StatefulSet的目的就是給眾多的有狀態負載提供正確的控制器支持。

向AI問一下細節

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

AI

河间市| 开远市| 高密市| 黄梅县| 沛县| 河曲县| 平顺县| 淮滨县| 来安县| 镇宁| 元谋县| 虹口区| 巴林左旗| 咸阳市| 青田县| 乌兰县| 泊头市| 阳山县| 舒兰市| 哈密市| 额尔古纳市| 阳原县| 铅山县| 三江| 磴口县| 唐河县| 萨嘎县| 托克逊县| 荆门市| 彭泽县| 巢湖市| 绥滨县| 东乡县| 阿拉善右旗| 连江县| 木兰县| 米林县| 田东县| 砀山县| 民乐县| 普洱|