原創文章,歡迎轉載。轉載請注明:轉載自IT人故事會,謝謝!
網站建設哪家好,找創新互聯!專注于網頁設計、網站建設、微信開發、微信小程序、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了蒲縣免費建站歡迎大家使用!
原文鏈接地址:『高級篇』docker之了解kubernetes(31)最后一個服務編排工具的學習k8s。kubernetes其實源于希臘語意思(舵手,領航員)。猶豫不太好擠也不太好寫,就有了另一個名稱叫k8s,kubernetes是谷歌在2014年開始實施的一個項目,當時google已經有了大規模服務容器管理的經驗,內部Borg系統,負責對google內部的一些服務進行調度和管理,它的目的是讓用戶不必操心資源管理的問題,讓他們專注自己的核心業務, 并且大化數據中心的利用率。
我們假設有個住戶社區,k8s就相當于這個社區的大房東,社區里面有一棟一棟的大樓,大樓可以看做虛擬機器,俗稱的VM,大樓里面有很多的住戶,每個住戶就代表一個pod,那每個住戶如何找到他們的位置呢?每個住戶如何找到他們的位置就是通過門牌號,我們就理解為IP的位置,在每個住戶里面有非常多的家庭成員,爸爸,媽媽,兄弟姐妹,爺爺奶奶,姥爺姥姥,女兒兒子,這些角色就可以理解為container,在這個pod里面的成員,就共享了這個房間里面的資源,水電網絡,那些資源就可以把它理解成計算資源,ipu,內存,硬盤。對于大房東k8s,他最主要的功能就是管理,每個住戶Pod使用多少資源,那為了就是讓整棟大樓,會更有效率的使用很多資源,舉例來說:A棟大樓住了太多的住戶,太多的Pod,他們直接肯定會相互競爭資源的問題,那它就可以協調某一些pod,就是某一些住戶搬到B大樓去,這樣會讓變得更加的均衡使用。
官網:https://kubernetes.io/ k8s是一個自動開源系統,自動化部署,擴縮容,管理容器化的應用。
相比前面的mesos 和swarm,k8s的目的非常的單純和明確,簡單的來說他的目的就是為了服務編排,沒有別的。這么明確的明確的目的。雖然目的簡單但專注所以專業,非常靈活的使用方式,它考慮到服務服務落地過程中可能遇到的各種各樣的問題,各種各樣的場景,所以從簡單的入手,吃透它。了解它的所有組件,然后回過頭看它的架構。
這張圖簡單的描述了,k8s集群的樣子,k8s肯定也需要一個集群,服務調度服務編排肯定要有機器,所以需要集群,中間的七邊行是Master節點,可以理解為安裝了核心組件的,另外的六邊形標識的是Node節點,在k8s里面叫worker節點,然后每個節點里面有個kubelet服務和docker服務,
多了2個綠色部分,在master里面Deployment。在Node中就是Containerized app就是容器化的應用。圖例就是在Master部署了一個Deployment,在三個節點選中了其中的一個部署了應用。Node中的藍色圓圈標識的是pod。
pod 是k8s中非常重要的一個概念,所有的應用和服務都是運行在pod里面的,pod是k8s中最小的一個單元,可以理解為k8s的一個原子,pod里面就是容器。
PS:通過上邊的4個小圖,可以明白同一個pod里面可以有任意多個容器和存儲。
知道了pod運行了容器,pod自己運行在哪里啊。運行在node,通過kubelet來進行的,調度kuelet把pod運行起來。一個node上面可以運行多個pod。只要資源足夠可以建立多個pod。
service
- 中間是master節點
- 其余的是node節點
- 下面的這個node,里面運行了一個pod,pod的外邊,有一層虛線,虛線標識service,pod的Ip(10.10.10.1),service(10.10.9.1),service和pod的Ip不同,pod是具體運行在一個node上的,如果pod或者node突然掛掉了,編排工具肯定在其他的node節點下重新起一個pod,這個pod肯定的ip也就變了。所以就需要一個serivce的概念,當pod出問題了,產生一個新的pod,新的pod就是一個新的ip,我們就可以通過service的方式找到pod。
- serivce的Ip跟service的生命周期是一致的,如果service不被刪除的話,IP一直不發生變化。
- 上邊這個2個node,三個pod,其實就是從一個實例變成了3個實例,進行了擴容,對外提供想通的服務,這時這個service,ip就有了另外2個作用,除了可以定位pod的地址,可以對pod地址進行負載均衡,進行輪詢,
service的概念基本了解了,怎么確定哪些pod屬于一個service,提出一個service的概念,service可能有一個或者是多個pod組成,如何定義service,怎么定義service。在k8s上通過Master的Label Selector的方式,比如s:app=A,s:app=B,有這種標簽的確定輸入pod等于A 或者pod等于B,所有標簽一樣的都屬于我的小弟。這樣service和pod的耦合就非常松。
PS:(梳理概念)pod里面包括N個容器,service里面包括pod,Deployment可能包括service或者是pod。
deployment完成應用擴容
滾動更新,停掉了一個舊的pod,啟動一個新的pod,這時service既有新的,也有舊的存在,直到所有的舊的都更新完畢才結束。所有的更新和擴容的過程serivce的Ip始終是保持不變的。
首先從整體上看,上邊這塊就是Master節點,下面有兩塊都是worker節點,master里面部署的都是k8s的核心模塊,虛線框代表的是API Server,提供了資源的核心模塊,提供了認證授權和k8s的訪問控制,可以通過kubectl或者自己開發的userClient,restApi的形式訪問API server。從而完成整個集群的訪問。
PS:全過程梳理
了解設計理念可以更深入的了解k8s,設計實在太好了,非常值得我們學習和借鑒。
API設計原則
k8s網絡
scheduler-preselect
優先規則,對node進行打分,通過優先函數進行預選規則,每個優先函數可以返回0-10的函數,分數越高,這臺主機越適合,對應一個權重。
pod內部通訊
通過pod的Ip來進行訪問
滿足pod,ip不能沖突
kube-proxy(ClusterIp)
每個服務,所有的pod給虛擬Ip,虛擬Ip只能在內部訪問
kube-proxy(NodePort)
服務暴露到節點,外部的可以通過NodeIp 訪問pod
負責集群內部的dns解析,內部之間可以通過名稱訪問pod。
PS:k8s的理論就講這么多,重點還是實踐,下次開始搭建k8s集群
另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文題目:『高級篇』docker之了解kubernetes(31)-創新互聯
網站路徑:http://vcdvsql.cn/article14/dioide.html
成都網站建設公司_創新互聯,為您提供網站設計、品牌網站制作、網站維護、ChatGPT、電子商務、網站設計公司
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯