亚洲日韩中文无码另类_亚洲最新综合av_午夜爱爱免费视频体验区_av无码av在线a∨天堂毛片

知識分享

工程師告訴你,應(yīng)用程序是如何在Kubernetes上運行的?

發(fā)布時間:2020-09-15 點擊數(shù):913

節(jié)點是Kubernetes集群的重要部分,負責運行容器化的工作負載。它的目的是向應(yīng)用程序公開計算、網(wǎng)絡(luò)和存儲資源。             

head節(jié)點通常運行控制平面,負責調(diào)度和管理工作負載的生命周期。worker節(jié)點運行應(yīng)用程序。head節(jié)點和worker節(jié)點的集合就構(gòu)成了一個集群。     

 

每個Kubernetes節(jié)點包括一個容器運行時(比如Docker),以及一個與head通信的代理(kubelet)。節(jié)點可以是運行在云中的虛擬機(VM),也可以是數(shù)據(jù)中心內(nèi)的裸金屬服務(wù)器。


【容器運行時

容器運行時負責管理節(jié)點中運行的每個容器的生命周期。在節(jié)點上調(diào)度pod之后,運行時從注冊表中提取pod指定的鏡像。當一個pod被終止時,運行時終止屬于這個pod的容器。Kubernetes可以與任何符合OCI的容器運行時進行通信,包括Docker和CRI-O。         

    

【Kubelet

Kubelet是Kubernetes代理,其職責是與容器運行時交互以執(zhí)行諸如啟動、停止和維護容器等操作。             


每個kubelet還監(jiān)控pod的狀態(tài)。當一個pod不符合部署定義的所需狀態(tài)時,它可以在同一個節(jié)點上重新啟動。節(jié)點的狀態(tài)每隔幾秒鐘通過心跳消息傳輸?shù)絟ead。如果head檢測到節(jié)點故障,復(fù)制控制器會觀察到這種狀態(tài)變化,然后在其他正常節(jié)點上調(diào)度pod。             


【Kube-Proxy

kube-proxy組件被實現(xiàn)為一個網(wǎng)絡(luò)代理和一個負載均衡器,它編排網(wǎng)絡(luò)將請求路由到適當?shù)膒od。它根據(jù)相關(guān)的服務(wù)名稱和傳入請求的端口號將流量路由到適當?shù)膒od。它還通過操縱iptables定義的策略和規(guī)則來利用操作系統(tǒng)特定的網(wǎng)絡(luò)功能。每個kube-proxy組件可以與網(wǎng)絡(luò)層(如Calico和Flannel)集成。  


OCI是定義運行時規(guī)范和鏡像規(guī)范的標準,其目的是推動容器運行時和鏡像格式的標準化。


【日志記錄層

編排器經(jīng)常使用日志記錄來收集每個節(jié)點上容器的資源使用情況和性能指標,例如CPU、內(nèi)存、文件和網(wǎng)絡(luò)使用情況。CNCF托管了一個軟件組件,該組件提供了一個統(tǒng)一的日志記錄層,與Kubernetes或其他編排器(稱為Fluentd)一起使用。這個組件生成Kubernetes主控制器需要的指標,以便跟蹤可用的集群資源以及整個基礎(chǔ)設(shè)施的運行狀況。     


【附加組件

Kubernetes以附加組件的形式支持附加服務(wù)。這些可選服務(wù)(如儀表板)的部署方式與其他應(yīng)用程序相同,但與節(jié)點上的其他核心組件(如日志記錄層和kube-proxy)集成在一起。例如,dashboard組件從kubelet中提取指標,以可視化地顯示資源利用率。DNS附加組件基于kube-dns或CoreDNS,通過名稱解析來增強kube-proxy。  


【工作負載是容器化的應(yīng)用程序

控制平面和worker節(jié)點構(gòu)成核心集群基礎(chǔ)設(shè)施,而工作負載是部署在Kubernetes中的容器化應(yīng)用程序。             

在開發(fā)和測試微服務(wù)之后,開發(fā)人員將其打包為容器,容器是打包為pod的最小部署單元。屬于同一應(yīng)用程序的一組容器在Kubernetes中被分組、打包、部署和管理。             


Kubernetes公開了用于部署的原語,同時不斷地擴展、發(fā)現(xiàn)和監(jiān)控這些微服務(wù)的運行狀況。命名空間通常用于從邏輯上分離一個應(yīng)用程序和另一個應(yīng)用程序。它們充當一個邏輯集群,為屬于應(yīng)用程序的所有資源和服務(wù)提供定義良好的邊界和范圍。             


在命名空間中,將部署以下Kubernetes原語: 

           

pod——pod是Kubernetes應(yīng)用程序的基本執(zhí)行單元。它是Kubernetes對象模型中最小、最簡單的單元。pod也是Kubernetes應(yīng)用程序中最小的可調(diào)度項。如果Kubernetes是一個操作系統(tǒng),那么pod代表在集群上運行的一組進程,其中每個進程可以映射到一個容器。             


pod是Kubernetes工作負載管理的核心單元,充當共享相同執(zhí)行上下文和資源的容器的邏輯邊界。將相關(guān)容器分組到pod中,可以一起運行多個相關(guān)進程,從而彌補了容器化取代第一代虛擬化時帶來的配置挑戰(zhàn)。             


每個pod是一個或多個容器的集合,這些容器使用進程間通信(IPC)進行通信,并且可以共享存儲和網(wǎng)絡(luò)堆棧。在容器需要耦合并位于同一位置的場景中(例如,web服務(wù)器容器和緩存容器),它們可以很容易地打包在單個pod中。pod可以手動擴展,也可以通過稱為Horizontal Pod Autoscaling(HPA)功能定義的策略進行擴展。通過這種方法,作為部署一部分的pod的數(shù)量根據(jù)可用資源按比例增加。             


pod實現(xiàn)了開發(fā)和部署之間的功能分離。當開發(fā)人員專注于他們的代碼時,運維人員可以專注于更廣泛的情況來決定哪些相關(guān)的容器可以聚合到一個功能單元中。這樣會帶來最佳的可移植性,因為pod只是一個或多個容器鏡像的清單。   


【控制器

在Kubernetes中,控制器通過添加額外的功能來擴充pod,比如所需的配置狀態(tài)和運行時特性。             


部署為pod帶來聲明性更新。它通過跟蹤參與部署的pod的運行狀況來保證始終保持所需的狀態(tài)。每個部署都管理一個ReplicSet,它維護一組穩(wěn)定的副本pod,在任何給定的時間運行,由所需的狀態(tài)定義。             


部署通過擴展、部署歷史和回滾功能為pod帶來類似PaaS的功能。當一個部署配置為最少兩個副本時,Kubernetes確保至少有兩個pod始終在運行,這帶來了容錯性。即使只使用一個副本部署pod,也強烈建議使用部署控制器,而不是普通的pod規(guī)范。            


statefulset類似于部署,但用于需要持久性、定義良好的標識符和有保證的創(chuàng)建順序的pod。對于數(shù)據(jù)庫集群之類的工作負載,statefulset控制器將按照給定的順序創(chuàng)建一組具有可預(yù)測命名約定的高可用性pod。需要高度可用的有狀態(tài)工作負載,如Cassandra、Kafka、ZooKeeper和sqlserver,在Kubernetes中被部署為statefulset。             


可以使用DaemonSet控制器來強制在集群的每個節(jié)點上運行pod。Kubernetes在新配置的worker節(jié)點中自動調(diào)度DaemonSet,因此它成為為工作負載配置和準備節(jié)點的理想選擇。例如,如果在部署工作負載之前必須在節(jié)點上掛載現(xiàn)有的網(wǎng)絡(luò)文件系統(tǒng)(NFS)或Gluster文件共享,建議將pod打包并部署為DaemonSet。監(jiān)控代理可以用作DaemonSet,以確保每個節(jié)點都運行監(jiān)控代理。             


對于批處理和調(diào)度作業(yè),可以將pod打包為run-to-completion作業(yè)或cron作業(yè)。作業(yè)創(chuàng)建一個或多個pod,并確保指定數(shù)量的pod成功終止。配置為“運行到完成”的pod執(zhí)行作業(yè)并退出,而cron作業(yè)將根據(jù)crontab格式定義的計劃運行作業(yè)。             

控制器根據(jù)工作負載的特征及其執(zhí)行上下文定義pod的生命周期。     


編輯:青藍咨詢

來源于網(wǎng)絡(luò),如有侵權(quán)請及時聯(lián)系     


【聯(lián)系青藍咨詢】

地址: 深圳市南山區(qū)高新南一道06號TCL大廈B座3樓309室 (公交站:大沖   地鐵站:一號線高新園C出口) 

    郵編:518057 

    電話:0755-86950769

    郵箱:peixun@shzhchina.com 

    網(wǎng)址:http://www.qhqingxinjp.com

 

                                                                        掃碼關(guān)注 了解更多課程信息