K8s基本概念入門

?

序言

????沒等到風來,綿綿小雨,所以寫個隨筆,聊聊k8s的基本概念。

?

????k8s是一個編排容器的工具,其實也是管理應用的全生命周期的一個工具,從創建應用,應用的部署,應用提供服務,擴容縮容應用,應用更新,都非常的方便,而且可以做到故障自愈,例如一個服務器掛了,可以自動將這個服務器上的服務調度到另外一個主機上進行運行,無需進行人工干涉。那么,問題來了,要運維何用?

?

????k8s可以更快的更新新版本,打包應用,更新的時候可以做到不用中斷服務,服務器故障不用停機,從開發環境到測試環境到生產環境的遷移極其方便,一個配置文件搞定,一次生成image,到處運行。。。

?

?

k8s的全生命周期管理

????在k8s進行管理應用的時候,基本步驟是:創建集群,部署應用,發布應用,擴展應用,更新應用。

?

????1、創建集群:為什么要使用集群?

????有一句古話叫做三個臭皮匠,賽過諸葛亮,這就是創建集群的原因。。。

?

????使用集群,create cluster是為了掩蓋底層的無能,在各種環境中,底層的硬件各不相同,有的是各種低廉的服務器,有的各種云環境,有的是各種vm,有的各種host machine,要想屏蔽底層的細節,增強可靠性和穩定性,從而需要創建集群。

?

????創建集群的好處就是,統一對外提供接口,無須進行各種復雜的調用;提供更好的可靠性,服務器宕機那么頻繁,物理磁盤那么容易損壞,無須擔心,集群統一進行調配;提供更好的性能,組合集群中各個機器的計算存儲網絡資源,提供更好的TPS和PS;提供橫向擴容的能力,在進行橫向擴容的時候,性能基本上能呈線性增長。

?

640?wx_fmt=png

?

????集群看起來很牛,那么創建起來很復雜么?并不會,在k8s只要使用兩條指令就可以創建一個集群,一個是kubectl init進行初始化,創建一個master節點,第二條指令就是kubectl join xxx創建一個node節點,加入這個集群。

?

????在這邊可以看到k8s在物理上進行劃分的時候,劃分了兩種類型的主機,一個master節點,主要用來調度,控制集群的資源等功能;而node節點,主要是用來運行容器的節點,也就是運行服務的節點。

?

????其實集群都差不多,master用來控制,用來存儲各種元數據,node節點是一個工作節點,真正來干活的;node節點定時與master進行通信,通過kubelet進程來匯報信息。

?

????創建了集群,我要怎么看信息?如下:

?

640?wx_fmt=png

?

????2、 部署應用

????使用集群的主要目標是啥?用來提供服務,讓開發開發的應用程序能在集群上運行,從而需要讓開發能運行一個應用來進行測試。

?

640?wx_fmt=png

????一條指令就能運行一個服務,有了image之后就是這么簡單。所以,在開發完成程序之后,需要將程序打包成image,然后放到registry中,然后就能夠運行應用了。

?

????在部署完成應用之后,就可以看到應用的名稱,期望狀態是運行一個pod,當前有一個pod,活動的也是一個,還有啟動的時間,那么什么是pod呢?

?

640?wx_fmt=png

?

????在k8s里面,集群調度的最小單元就是一個pod,一個pod可以是一個容器,也可以是多個容器,例如你運行一個程序,其中使用了nginx,使用mysql了,使用了jetty,那么可以將這三個使用在同一個pod中,對他們提供統一的調配能力,一個pod只能運行在一個主機上,而一個主機上可以有多個pod。

?

640?wx_fmt=png

?

????那么有人會問,為什么要使用pod,為什么不能直接使用容器呢?使用pod,相當與一個邏輯主機,還記得創建一個vm,在vm上運行幾個進程么,其實道理是一樣的,pod的存在主要是讓幾個緊密連接的幾個容器之間共享資源,例如ip地址,共享存儲等信息。如果直接調度容器的話,那么幾個容器可能運行在不同的主機上,這樣就增加了系統的復雜性。

?

640?wx_fmt=png

????

????3、發布應用

????發布應用主要就是對外提供服務,可能會有人提出疑問,我都運行了服務,為什么還不能提供服務,這是因為在集群當中,創建的ip地址等資源,只有在同一個集群中才能訪問,每個pod也有獨一的ip地址,當有多個pod提供相同的服務的時候,就需要有負載均衡的能力,從而這里就涉及到一個概念就是service,專門用來提供服務的。

?

640?wx_fmt=png

640?wx_fmt=png

????服務主要是用來提供外界訪問的接口,服務可以關聯一組pod,這些pod的ip地址各不相同,而service相當于一個復雜均衡的vip,用來指向各個pod,當pod的ip地址發生改變之后,也能做到自動進行負載均衡,在關聯的時候,service和pod之間主要通過label來關聯,也就是標簽(-l表示為label)。

?

640?wx_fmt=png

????從而外界就可以訪問此應用了,如下:

?

640?wx_fmt=png

? ? 4、 擴容縮容

????在業務上線之后,碰到了雙十一怎么辦?擴容。。。萬劍歸宗,只要有一個pod,那么就可以產生無數個pod。。。。

?

640?wx_fmt=png

????過了雙十一怎么辦,縮容。。。

?

640?wx_fmt=png

????橫向擴展的能力。。每次擴容縮容的時候,這種會不會覺得很方便,一句話的事兒。。不用創建vm,不用去部署中間件,不用去各種修改配置,這就是自動化。。。

?

????5、 更新

????有新版本了,我要發布。。。那么。。。

?

640?wx_fmt=png

????滾動更新。。。根據新的image創建一個pod,分配各種資源,然后自動負載均衡,刪除老的pod,然后繼續更新。。。。不會中斷服務。。。

????更新錯了怎么辦,不慫,不會影響生產業務,回滾就好了。。。幾秒鐘的事兒。。。

?

后話

????k8s的基本入門,其實算是一種用戶視角,只是用來演示如何使用k8s,怎么提高了生產力而已。

?

????在給客戶演示的時候,為啥要選擇k8s?主要就是如何提高了發布的效率,更新版本的效率,更方便更快捷的上線新版本。

?

????但是在運維關注的視角下,這些遠遠不夠。。。master?存儲了哪些元數據,存儲在etcd中?如何來進行監控?在很多很多系統情況下,怎么來部署k8s,是一個項目一個k8s還是一個k8s多個項目?等等一系列的問題。。。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/387061.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/387061.shtml
英文地址,請注明出處:http://en.pswp.cn/news/387061.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

idea出現找不到實體類

今天經理遇到一個很奇怪的問題: 在使用idea時,就是包真實存在,但是包中的實體類卻無法智能提示,也無法導入成功; 我推薦的解決辦法是重新導入,但是沒有用,經理在網上找了很多解決方式&#xff0…

TF02 入門

計算模型——圖 數據模型——張量 運行模型——會話 TensorFlow計算模型——計算圖 計算圖是TF中最基本的一個概念,TF中的所有計算都會被轉化為計算圖上的結點。 TF是一個通過計算圖的形式來表述計算的編程系統。TF中的每一個計算都是計算圖上的一個節點&#x…

ElasticSearch、Logstash和Kiabana三個開源工具。

一 方案背景 通常,日志被分散的儲存不同的設備上。如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法查閱日志。這樣是不是感覺很繁瑣和效率低下。開源實時日志分析ELK平臺能夠完美的解決日志收集和日志檢索、分析的問題,ELK…

「一本通 6.4 例 4」曹沖養豬(CRT)

復習一下 擴展中國剩余定理 首先考慮兩個同余方程\[ x \equiv a_1\; mod\; m_1\\ x \equiv a_2\; mod\; m_2 \]化成另一個形式\[ x n_1 * m_1 a_1\\ x n_2 * m_2 a_2 \] 聯立可得\[ n_1 * m_1 a_1 n_2 * m_2 a_2\\ n_1 * m_1 - n_2 * m_2 a_2 - a_1 \]有解的前提是\[ \…

06 MapReduce工作機制

MapReduce作業的執行流程 1、提交作業 在提交JobConf對象之後,用戶程序調用JobClient的runJob方法。 runJob方法會先行調用JobSubmissionProtocol接口所定義的submitJob方法,並將作業提交給JobTracker。 緊接著,runJob不斷循環&#xff0…

solr elasticsearch比較

solr: 優點 1、Solr有一個更大、更成熟的用戶、開發和貢獻者社區。 2、支持添加多種格式的索引,如:HTML、PDF、微軟 Office 系列軟件格式以及 JSON、XML、CSV 等純文本格式。 3、Solr比較成熟、穩定。 4、不考慮建索引的同時進行搜索&#xf…

力扣(LeetCode)292. Nim游戲 巴什博奕

你和你的朋友,兩個人一起玩 Nim游戲:桌子上有一堆石頭,每次你們輪流拿掉 1 - 3 塊石頭。 拿掉最后一塊石頭的人就是獲勝者。你作為先手。 你們是聰明人,每一步都是最優解。 編寫一個函數,來判斷你是否可以在給定石頭數…

Spring Cloud應用監控與管理Actuator

由于我們把一個復雜高耦合的單體系統拆分成了多個小型服務,所以部署應用的數量在不斷增長,造成維護復雜度大大提升。所以我們需要一套自動化的監控運維機制,這套運維機制可以不間斷的獲取每個服務應用的各種指標,并根據這些指標信…

2019.04.09 電商25 結算功能1

結算功能要獲取很多數據, 現在的主要問題是要知道獲取對應的商品信息,要知道我選的是哪個的商品信息啊 它們選框的類名都一樣啊,能遍歷嗎?遍歷之后要去獲取,它父級屬性的值 有多少商品就有多少復選框,可以獲…

性能堆分析思路

1、通過top找到對應的耗費資源比較大的進程ID, 2、ps p 進程ID -L -o pcpu,pid,tid,time,tname,cmd 3、然后利用上面面命令來找到對應的線程 4、利用Listthread方法 列出所有線程,與找到對應資源比較大的匹配 5、利用stack查找到對應的堆棧調用代碼&…

第十二屆湖南省賽 (B - 有向無環圖 )(拓撲排序+思維)好題

Bobo 有一個 n 個點,m 條邊的有向無環圖(即對于任意點 v,不存在從點 v 開始、點 v 結束的路徑)。為了方便,點用 1,2,…,n 編號。 設 count(x,y) 表示點 x 到點 y 不同的路徑數量(規定 count(x,x)0&#xff…

GC 調優(實戰篇) - GC參考手冊

說明: Allocation Rate, 翻譯為分配速率, 而不是分配率; 因為不是百分比,而是單位時間內分配的量; 同理, Promotion Rate 翻譯為 提升速率; 您應該已經閱讀了前面的章節: 垃圾收集簡介 - GC參考手冊Java中的垃圾收集 - GC參考手冊GC 算法(基礎篇) - GC參考手冊GC 算法(實現篇)…

01 HTML

1.什么是HTML?(Hyper Text Markup Language:超文本標記語言)超文本:功能比普通文本更加強大標記語言:使用一組標簽對內容進行描述的一門語言(它不是編程語言)2.語法和規范?HTML文件都是以.html或者.htm結尾的,建議使用…

圖的四種最短路徑算法

本文總結了圖的幾種最短路徑算法的實現:深度或廣度優先搜索算法,弗洛伊德算法,迪杰斯特拉算法,Bellman-Ford算法 1),深度或廣度優先搜索算法(解決單源最短路徑) 從起始結點開始訪問所…

20101008 搬家

剛剛系統還原了,把軟件啥的都裝上了,忙完一切,該整理整理照片,寫寫博客了(總是如果不及時寫,就幾乎永遠不會寫了)。我一貫喜歡"工欲善其事,必先利其器",裝個wi…

ZooKeeper集群與Leader選舉

說說你對ZooKeeper集群與Leader選舉的理解? ZooKeeper是一個開源分布式協調服務、分布式數據一致性解決方案。可基于ZooKeeper實現命名服務、集群管理、Master選舉、分布式鎖等功能。 高可用 為了保證ZooKeeper的可用性,在生產環境中我們使用ZooKeeper…