一、Kubernetes簡(jiǎn)介

Cloud Native Application 云原生 程序開發(fā)出來就運(yùn)行在云平臺(tái)上咬腕,而非傳統(tǒng)的物理機(jī)單機(jī)主機(jī)上
ServerLess 無服務(wù)器概念 Knative
Faas:函數(shù)即服務(wù)壶硅,調(diào)用時(shí)運(yùn)行,不調(diào)用時(shí)服務(wù)不運(yùn)行

1瓦呼、docker與kubernetes的關(guān)系

1.1docker介紹

  • docker是容器的一種喂窟,對(duì)于容器來說,它事實(shí)上也是虛擬化的一種央串,被稱之為操作系統(tǒng)級(jí)的虛擬化磨澡。
    容器運(yùn)行的時(shí)侯,所有的容器全部共同使用操作系統(tǒng)的內(nèi)核质和,而對(duì)于每一個(gè)容器來說稳摄,只有必要的應(yīng)用和二進(jìn)制文件。
    容器為任務(wù)而生饲宿,每一個(gè)容器通常厦酬,只會(huì)運(yùn)行一個(gè)任務(wù),在主機(jī)操作系統(tǒng)上體現(xiàn)為一個(gè)進(jìn)程瘫想。各容器之間通過namespace和cgroup來進(jìn)行隔離與資源的限制仗阅。
  • 但是,容器也會(huì)有自身缺陷:
    1国夜、基于命令行一次只能啟動(dòng)一個(gè)容器减噪,容器和容器之間沒有辦法建立更好的關(guān)聯(lián)關(guān)系。
    2支竹、當(dāng)容器數(shù)量足夠多的時(shí)候旋廷,管理員不能有效的記錄每一個(gè)容器的配置,導(dǎo)致容器運(yùn)行混亂礼搁。
    3饶碘、容器沒有辦法做到負(fù)載均衡,自我修復(fù)馒吴,彈性伸縮等
  • docker的解決方案
    通過docker-compose去做容器的單機(jī)編排
    通過docker-swarm去做容器的集群編排
    但這兩種方式都沒有kubernetes的生態(tài)強(qiáng)大扎运,并且能做到的功能弱于kubernetes瑟曲。接下來去介紹一下基于google開源的kubernetes

1.2kubernetes介紹

kubernetes,是一個(gè)全新的基于容器技術(shù)的分布式架構(gòu)領(lǐng)先方案豪治,是谷歌嚴(yán)格保密十幾年的秘密武器----Borg系統(tǒng)的一個(gè)開源版本洞拨,于2014年9月發(fā)布第一個(gè)版本,2015年7月發(fā)布第一個(gè)正式版本负拟。

kubernetes的本質(zhì)是一組服務(wù)器集群烦衣,它可以在集群的每個(gè)節(jié)點(diǎn)上運(yùn)行特定的程序,來對(duì)節(jié)點(diǎn)中的容器進(jìn)行管理掩浙。目的是實(shí)現(xiàn)資源管理的自動(dòng)化花吟,主要提供了如下的主要功能:

  • 自我修復(fù):一旦某一個(gè)容器崩潰,能夠在1秒中左右迅速啟動(dòng)新的容器
  • 彈性伸縮:可以根據(jù)需要厨姚,自動(dòng)對(duì)集群中正在運(yùn)行的容器數(shù)量進(jìn)行調(diào)整
  • 服務(wù)發(fā)現(xiàn):服務(wù)可以通過自動(dòng)發(fā)現(xiàn)的形式找到它所依賴的服務(wù)
  • 負(fù)載均衡:如果一個(gè)服務(wù)起動(dòng)了多個(gè)容器衅澈,能夠自動(dòng)實(shí)現(xiàn)請(qǐng)求的負(fù)載均衡
  • 版本回退:如果發(fā)現(xiàn)新發(fā)布的程序版本有問題,可以立即回退到原來的版本
  • 存儲(chǔ)編排:可以根據(jù)容器自身的需求自動(dòng)創(chuàng)建存儲(chǔ)卷

1.3 kubernetes組件

一個(gè)kubernetes集群主要是由控制節(jié)點(diǎn)(master)谬墙、工作節(jié)點(diǎn)(node)構(gòu)成今布,每個(gè)節(jié)點(diǎn)上都會(huì)安裝不同的組件。

master:集群的控制平面拭抬,負(fù)責(zé)集群的決策 ( 管理節(jié)點(diǎn))

ApiServer : 資源操作的唯一入口部默,接收用戶輸入的命令,提供認(rèn)證玖喘、授權(quán)甩牺、API注冊(cè)和發(fā)現(xiàn)等機(jī)制

Scheduler : 負(fù)責(zé)集群資源調(diào)度蘑志,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的node節(jié)點(diǎn)上

ControllerManager : 負(fù)責(zé)維護(hù)集群的狀態(tài)累奈,比如程序部署安排、故障檢測(cè)急但、自動(dòng)擴(kuò)展澎媒、滾動(dòng)更新等

Etcd :負(fù)責(zé)存儲(chǔ)集群中各種資源對(duì)象的信息

node:集群的數(shù)據(jù)平面,負(fù)責(zé)為容器提供運(yùn)行環(huán)境 ( 工作節(jié)點(diǎn) )

Kubelet : 負(fù)責(zé)維護(hù)容器的生命周期波桩,即通過控制docker戒努,來創(chuàng)建、更新镐躲、銷毀容器

KubeProxy : 負(fù)責(zé)提供集群內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡

Docker : 負(fù)責(zé)節(jié)點(diǎn)上容器的各種操作

1.4交互流程

image.png

以創(chuàng)建一個(gè)POD(kubernetes的最小資源單位储玫,暫且理解為一個(gè)容器或一組容器)為例

1、用戶申請(qǐng)創(chuàng)建一個(gè)POD
2萤皂、該請(qǐng)求會(huì)被APIServer所接受撒穷,ApiServer收到用戶請(qǐng)求后,首先會(huì)對(duì)用戶做身份認(rèn)證以及權(quán)限驗(yàn)證裆熙;
3端礼、APIServer通過認(rèn)證之后會(huì)將該任務(wù)的描述信息寫入etcd數(shù)據(jù)庫(kù)當(dāng)中
4禽笑、Scheduler監(jiān)聽ApiServer,和ApiServer保持心跳聯(lián)系蛤奥;
5佳镜、Scheduler定時(shí)詢問ApiServer是否有創(chuàng)建POD的請(qǐng)求,ApiServer查詢數(shù)據(jù)庫(kù)凡桥,拿到請(qǐng)求之后蟀伸,交由Scheduler,Scheduler向ApiServer獲取當(dāng)前所有Kubelet狀態(tài)缅刽,選擇一個(gè)合適的后端(Kubelet)望蜡,交給ApiServer;
6拷恨、ApiServer存放在etcd數(shù)據(jù)庫(kù)當(dāng)中
7脖律、Kublet監(jiān)聽ApiServer,和ApiServer保持心跳聯(lián)系腕侄;
8小泉、Kubelet詢問ApiServer是否有創(chuàng)建POD的請(qǐng)求,ApiServer查詢數(shù)據(jù)庫(kù)冕杠,拿到任務(wù)之后微姊,交由Kubelet,Kubelet創(chuàng)建POD完成后分预,
告知ApiServer兢交;
9ApiServer存放在etcd數(shù)據(jù)庫(kù)當(dāng)中
10、controller-managert監(jiān)聽ApiServer笼痹,和ApiServer保持心跳聯(lián)系配喳;
11、controller-manager向apiserver發(fā)起請(qǐng)求凳干,詢問是否有任務(wù)晴裹;
12、apiserver會(huì)將POD的任務(wù)信息以及描述信息發(fā)送給controller-manager救赐;
13涧团、controller-manager對(duì)比任務(wù)是否有異常,如果沒有经磅,則確定任務(wù)完成泌绣;
14、如果有预厌,則將未完成的任務(wù)返回給kube-apiserver

1.5kubernetes關(guān)鍵概念

1阿迈、Pod

kubernetes的最小控制單元,容器都是運(yùn)行在pod中的配乓,一個(gè)pod中可以有1個(gè)或者多個(gè)容器

  • 自主式Pod
    通過手動(dòng)創(chuàng)建Pod仿滔,該方式創(chuàng)建出來惠毁,不具備k8s的編排特性,當(dāng)中運(yùn)行的只是一個(gè)或一組容器
  • 控制器管理的Pod
    通過控制器去創(chuàng)建Pod崎页,該方式創(chuàng)建出來鞠绰,具備k8s的編排特性,具有生命周期飒焦,可以做到負(fù)載均衡蜈膨,彈性伸縮,滾動(dòng)更新等牺荠。

2翁巍、控制器controller

  • ReplicationController
    用于數(shù)據(jù)副本維持在期望值,當(dāng)前已被棄用休雌,由ReplicaSet替代
  • ReplicaSet
    保證副本數(shù)量一直維持在期望值灶壶,并支持pod數(shù)量擴(kuò)縮容,鏡像版本升級(jí)
  • Depliyment
    通過ReplicaSet控制Pod杈曲,并支持滾動(dòng)升級(jí)驰凛、回退版本。只能管理無狀態(tài)應(yīng)用
  • StatefulSet
    管理有狀態(tài)應(yīng)用
  • HPA(Horizontal Pod Autoscaler)
    可以根據(jù)集群負(fù)載自動(dòng)水平調(diào)整Pod的數(shù)量担扑,實(shí)現(xiàn)削峰填谷
  • DaemonSet
    在集群中的指定Node上運(yùn)行且僅運(yùn)行一個(gè)副本恰响,一般用于守護(hù)進(jìn)程類的任務(wù)
  • Job
    它創(chuàng)建出來的pod只要完成任務(wù)就立即退出,不需要重啟或重建涌献,用于執(zhí)行一次性任務(wù)
  • Cronjob
    它創(chuàng)建的Pod負(fù)責(zé)周期性任務(wù)控制胚宦,不需要持續(xù)后臺(tái)運(yùn)行

3、Service

在kubernetes中燕垃,pod是應(yīng)用程序的載體枢劝,我們可以通過pod的ip來訪問應(yīng)用程序,但是pod的ip地址不是固定的利术,這也就意味著不方便直接采用pod的ip對(duì)服務(wù)進(jìn)行訪問呈野。
為了解決這個(gè)問題,kubernetes提供了Service資源印叁,Service會(huì)對(duì)提供同一個(gè)服務(wù)的多個(gè)pod進(jìn)行聚合,并且提供一個(gè)統(tǒng)一的入口地址军掂。通過訪問Service的入口地址就能訪問到后面的pod服務(wù)轮蜕。


image.png

4、網(wǎng)絡(luò)

  • Pod網(wǎng)絡(luò)
    通過插件提供CNI
    (1蝗锥、flannel提供網(wǎng)絡(luò)配置 2跃洛、calico提供網(wǎng)絡(luò)配置和網(wǎng)絡(luò)策略 3、canel通過flannel提供網(wǎng)絡(luò)配置终议,calico提供網(wǎng)絡(luò)策略 4汇竭、等等)
  • 集群網(wǎng)絡(luò)(Service網(wǎng)絡(luò))
  • 節(jié)點(diǎn)網(wǎng)絡(luò)
image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末葱蝗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子细燎,更是在濱河造成了極大的恐慌两曼,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玻驻,死亡現(xiàn)場(chǎng)離奇詭異悼凑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)璧瞬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門户辫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嗤锉,你說我怎么就攤上這事渔欢。” “怎么了瘟忱?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵膘茎,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我酷誓,道長(zhǎng)披坏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任盐数,我火速辦了婚禮棒拂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘玫氢。我一直安慰自己帚屉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布漾峡。 她就那樣靜靜地躺著攻旦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪生逸。 梳的紋絲不亂的頭發(fā)上牢屋,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音槽袄,去河邊找鬼烙无。 笑死,一個(gè)胖子當(dāng)著我的面吹牛遍尺,可吹牛的內(nèi)容都是我干的截酷。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乾戏,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼迂苛!你這毒婦竟也來了三热?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤三幻,失蹤者是張志新(化名)和其女友劉穎就漾,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赌髓,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡从藤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锁蠕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夷野。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖荣倾,靈堂內(nèi)的尸體忽然破棺而出悯搔,到底是詐尸還是另有隱情,我是刑警寧澤舌仍,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布妒貌,位于F島的核電站,受9級(jí)特大地震影響铸豁,放射性物質(zhì)發(fā)生泄漏灌曙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一节芥、第九天 我趴在偏房一處隱蔽的房頂上張望在刺。 院中可真熱鬧,春花似錦头镊、人聲如沸蚣驼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)颖杏。三九已至,卻和暖如春坛芽,著一層夾襖步出監(jiān)牢的瞬間留储,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工靡馁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留欲鹏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓臭墨,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親膘盖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胧弛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者尤误,不喜歡去冒險(xiǎn),但是人生放棄了冒險(xiǎn)结缚,也就放棄了無數(shù)的可能损晤。 ...
    yichen大刀閱讀 6,049評(píng)論 0 4
  • 公元:2019年11月28日19時(shí)42分農(nóng)歷:二零一九年 十一月 初三日 戌時(shí)干支:己亥乙亥己巳甲戌當(dāng)月節(jié)氣:立冬...
    石放閱讀 6,879評(píng)論 0 2
  • 今天上午陪老媽看病,下午健身房跑步红竭,晚上想想今天還沒有斷舍離尤勋,馬上做,衣架和旁邊的的布衣架茵宪,一看亂亂最冰,又想想自己是...
    影子3623253閱讀 2,912評(píng)論 1 8