您好,登錄后才能下訂單哦!
這期內(nèi)容當中小編將會給大家?guī)碛嘘PK8S中Pod和Deployment的區(qū)別是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
Pod是k8s的最小調(diào)度單位,一個Pod中可以有多個containers,彼此共享網(wǎng)絡等,這是k8s的核心概念。
其他資源基本上都是圍繞著Pod而展開,比如RC(Replication Controller)或者RS(Replication Set),這兩種資源可以控制Pod的副本數(shù),所以它們就比Pod高級一點,在定義它們的時候和Deployment一樣,需要在template中定義Pod中的容器等內(nèi)容,而Deployment是比RC或者RS更高級的一種資源,它不但可以控制Pod的副本數(shù),同時還可以控制Pod的版本,所以這么高級的資源并不是時時刻刻都需要的,比如你就想暫時性的部署一個小程序,用完就不要了,那么你就沒有必要使用RS或者RC,更沒有必要去用Deploment。
----------------------------------------
從開發(fā)者角度看,deployment顧明思意,既部署,對于完整的應用部署流程,除了運行代碼(既pod)之外,需要考慮更新策略,副本數(shù)量,回滾,重啟等步驟,而運行代碼的方式有很多種,例如有一次性的也就是job,有定時執(zhí)行的也就是crontabjob,有排號的也就是sts,為了復用運行代碼的功能所以抽象為pod,從而進行復用。
從用戶角度看,我們操作時也會根據(jù)不同的代碼副本進行查看,例如日志,資源占用都是實例級別的也需要這么一個抽象。
----------------------------------------
pod是單一亦或一組容器的合集。
deployment是pod版本管理的工具 用來區(qū)分不同版本的pod。
單獨創(chuàng)建pod的時候就不會有deployment出現(xiàn),但是創(chuàng)建deployment的時候一定會創(chuàng)建pod,因為pod是一個基礎的單位。
任何的控制器單位的具體實現(xiàn)必須落到pod去實現(xiàn)。
----------------------------------------
Replication Controller為Kubernetes的一個核心內(nèi)容,應用托管到Kubernetes之后,需要保證應用能夠持續(xù)的運行,Replication Controller就是這個保證的key,主要的功能如下:
確保pod數(shù)量:它會確保Kubernetes中有指定數(shù)量的Pod在運行。如果少于指定數(shù)量的pod,Replication Controller會創(chuàng)建新的,反之則會刪除掉多余的以保證Pod數(shù)量不變。
確保pod健康:當pod不健康,運行出錯或者無法提供服務時,Replication Controller也會殺死不健康的pod,重新創(chuàng)建新的。
彈性伸縮 :在業(yè)務高峰或者低峰期的時候,可以通過Replication Controller動態(tài)的調(diào)整pod的數(shù)量來提高資源的利用率。同時,配置相應的監(jiān)控功能(Hroizontal Pod Autoscaler),會定時自動從監(jiān)控平臺獲取Replication Controller關聯(lián)pod的整體資源使用情況,做到自動伸縮。
滾動升級:滾動升級為一種平滑的升級方式,通過逐步替換的策略,保證整體系統(tǒng)的穩(wěn)定,在初始化升級的時候就可以及時發(fā)現(xiàn)和解決問題,避免問題不斷擴大。
Deployment同樣為Kubernetes的一個核心內(nèi)容,主要職責同樣是為了保證pod的數(shù)量和健康,90%的功能與Replication Controller完全一樣,可以看做新一代的Replication Controller。但是,它又具備了Replication Controller之外的新特性:
Replication Controller全部功能:Deployment繼承了上面描述的Replication Controller全部功能。
事件和狀態(tài)查看:可以查看Deployment的升級詳細進度和狀態(tài)。
回滾:當升級pod鏡像或者相關參數(shù)的時候發(fā)現(xiàn)問題,可以使用回滾操作回滾到上一個穩(wěn)定的版本或者指定的版本。
版本記錄: 每一次對Deployment的操作,都能保存下來,給予后續(xù)可能的回滾使用。
暫停和啟動:對于每一次升級,都能夠隨時暫停和啟動。
多種升級方案:Recreate:刪除所有已存在的pod,重新創(chuàng)建新的; RollingUpdate:滾動升級,逐步替換的策略,同時滾動升級時,支持更多的附加參數(shù),例如設置最大不可用pod數(shù)量,最小升級間隔時間等等。
上述就是小編為大家分享的K8S中Pod和Deployment的區(qū)別是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。