【K8S 系列】k8s 學(xué)習(xí)一提岔,Kubernetes 基本介紹及核心組件

【K8S 系列】k8s 學(xué)習(xí)一波岛,Kubernetes 基本介紹及核心組件

Kubernetes 概述

官網(wǎng)::https://kubernetes.io/

kubernetes github:https://github.com/kubernetes/kubernetes

學(xué)習(xí)資料(語言可以自由切換):https://www.kubernetes.org.cn/k8s

image

kubernetes 有什么由來荐健?

最開始是谷歌公司內(nèi)部使用的 Borg 系統(tǒng)暖璧,后面使用 Golang 重寫并捐獻(xiàn)給 CNCF 基金會(huì)開源了

kubernetes 重要的作用案怯?

kubernetes 是一個(gè)開源的容器編排框架工具,有著極其豐富的生態(tài)資源

學(xué)習(xí) kubernetes 的意義澎办?

解決單機(jī)裸跑 docker 的若干痛點(diǎn)

為什么 kubernetes 叫做 K8S 嘲碱?

因?yàn)?k 到 s 之間 有 8個(gè)字母, 因此叫做 K8S

kubernetes 有什么優(yōu)勢局蚀?

  • 可自動(dòng)裝箱麦锯,可水平擴(kuò)展,可自我修復(fù)
  • 有服務(wù)發(fā)現(xiàn)和負(fù)載均衡
  • 可集中化配置管理和秘鑰管理
  • 可存儲(chǔ)編排
  • 可任務(wù)批處理運(yùn)行
  • 可自動(dòng)發(fā)布和回滾 等等

此處的自動(dòng)發(fā)布默認(rèn)是滾動(dòng)發(fā)布模式

自動(dòng)發(fā)布模式有如下 4 種:

  • 藍(lán)綠發(fā)布
  • 滾動(dòng)發(fā)布 (kubernetes 默認(rèn)發(fā)布方式)
  • 灰度發(fā)布
  • 金絲雀發(fā)布

kubernetes 的四組概念

Pod 和 Pod 控制器

Pod 是 K8S 里面的概念琅绅,

是 K8S 里面能夠被運(yùn)行的最小邏輯單元扶欣,也就是原子單元

1 個(gè) Pod 里面可以運(yùn)行多個(gè) docker 容器,多個(gè) docker 容器是共享 UTS命名空間千扶,NE命名空間T料祠,IPC命名空間的

K8S 里面稱這種 1 個(gè) Pod 里面可以運(yùn)行多個(gè) docker 容器的模式叫做 邊車模式(SideCar)

這里順便說一下 linux 里面的 6 種命名空間:

  • UTS

主機(jī)名

  • IPC

進(jìn)程間通信

  • PID

chroot進(jìn)程樹

  • NS

掛載點(diǎn)

  • NET

網(wǎng)絡(luò)訪問,包括接口

  • USER

將本地的虛擬user-id映射到真實(shí)的user-id

Pod 控制器是 Pod 啟動(dòng)的一種模板澎羞,用來保證 K8S 里面啟動(dòng)的 Pod 能夠始終按照人們的預(yù)期運(yùn)行髓绽,例如副本數(shù),生命周期妆绞,健康狀態(tài)的檢查等等

K8S 里面提供了多個(gè) Pod 控制器顺呕,如下 6 種最為常見 Pod 控制器,具體使用的時(shí)候我們再詳細(xì)的說明其作用和原理:

  • Deployment

部署括饶,為無狀態(tài)服務(wù)而設(shè)計(jì)的株茶,

  • DaemonSet

DaemonSet保證在每個(gè)Node上都運(yùn)行一個(gè)容器副本,常用來部署一些集群的日志巷帝、監(jiān)控或者其他系統(tǒng)管理應(yīng)用

  • ReplicaSet

為無狀態(tài)服務(wù)而設(shè)計(jì)忌卤,簡稱為RC,是復(fù)本控制器楞泼,主要作用是確保 Pod 以我們指定的副本數(shù)運(yùn)行

Deployment 控制 ReplicaSet驰徊,ReplicaSet 控制 Pod

  • StatefulSet

是為了解決有狀態(tài)服務(wù)的一系列問題

  • Job

負(fù)責(zé)批量處理短暫的一次性任務(wù) (short lived one-off tasks),即僅執(zhí)行一次的任務(wù)堕阔,它保證批處理任務(wù)的一個(gè)或多個(gè)Pod成功結(jié)束

  • CronJob

即定時(shí)任務(wù)棍厂,就類似于Linux系統(tǒng)的crontab,在指定的時(shí)間周期運(yùn)行指定的任務(wù)

其中 Deployment 和 DaemonSet 最為核心

Name 和 Namespace

Name 就是名稱

在 K8S 里面超陆,是用資源來定義每一種邏輯概念或者功能牺弹,每種資源就要有自己的名稱浦马,名稱通常定義在資源元數(shù)據(jù)里面

例如:

  • 資源的 api 版本
  • 類別 kind
  • 元數(shù)據(jù) metadata
  • 定義清單 spec
  • 狀態(tài) status 等配置文件

Namespace 就是命名空間

隨著項(xiàng)目,人員张漂,集群規(guī)模不斷擴(kuò)張晶默,我們就需要一種能隔離 K8S 內(nèi)部資源的方法,就會(huì)使用命名空間

  • 我們可以理解命名空間就是內(nèi)部的一個(gè)虛擬組

  • 不同的命名空間里面的資源名字可以相同航攒,相同的命名空間內(nèi)的資源不能同名

  • K8S 里面默認(rèn)存在的命名空間有:

    • default
    • kube-system
    • kube-public
  • 查詢 K8S 里面特定的資源需要帶上相應(yīng)的命名空間

Lable 和 Label 選擇器

Lable 就是標(biāo)簽

標(biāo)簽是 K8S 特色的管理方式磺陡,便于分類管理資源對(duì)象,有如下幾個(gè)注意點(diǎn):

  • 標(biāo)簽的組成是 key=value 的形式
  • 標(biāo)簽和資源是多對(duì)多的關(guān)系漠畜,一個(gè)標(biāo)簽可以有多個(gè)資源币他,一個(gè)資源也可以有多個(gè)標(biāo)簽
  • 一個(gè)資源擁有多個(gè)標(biāo)簽的時(shí)候,可以實(shí)現(xiàn)不同維度的管理
  • 有一種形式叫做注解憔狞,他與標(biāo)簽類似

根據(jù)官網(wǎng)的說明和解釋

image

標(biāo)簽可以是 63 個(gè)字符以下蝴悉,包含[a-z0-9A-Z],還可以包含-瘾敢,_拍冠,.

Label 選擇器 就是可以對(duì)標(biāo)簽進(jìn)行過濾,進(jìn)行管理

標(biāo)簽選擇器目前有兩種:

  • 基于等值關(guān)系(等于 或者 不等于)
  • 基于集合關(guān)系(屬于 或者 不屬于)

許多的資源是支持內(nèi)嵌標(biāo)簽選擇器字段的

  • matchLabels
  • matchExpressions

Service 和 Ingress

k8s 有三大網(wǎng)絡(luò):

  • Node 節(jié)點(diǎn)網(wǎng)絡(luò)
  • Pod 容器網(wǎng)絡(luò)
  • service 集群網(wǎng)絡(luò)

K8S 面對(duì)一個(gè)問題廉丽,K8S 里面的每個(gè) Pod 都會(huì)分配一個(gè)單獨(dú)的 IP 地址倦微,但是這個(gè)地址會(huì)隨著 Pod 的銷毀而消失

K8S 就有專門的 Service 服務(wù)來處理這個(gè)問題

  • 一個(gè) Service 服務(wù)可以看作一組提供相同服務(wù)的 Pod 對(duì)外訪問的接口

  • 然而 Service 作用與哪些 Pod ,這是通過標(biāo)簽選擇器來定義的

Ingress 就是 K8S 里面網(wǎng)絡(luò)模型下第 7 層的應(yīng)用正压,他是對(duì)外暴露接口的

  • service 只能進(jìn)行在第 4 層上面進(jìn)行流量調(diào)度欣福,咱們能夠看到的表現(xiàn)形式是 ip + port

  • Ingress 就比較強(qiáng)大,他可以調(diào)度不同業(yè)務(wù)域焦履,還可以調(diào)度不同 URL 訪問路徑的業(yè)務(wù)流量

K8S 的組成

K8S 邏輯架構(gòu)圖拓劝,該圖來源于網(wǎng)絡(luò)

image

圖中涉及到的模塊,下面會(huì)逐個(gè)提到

CLI 客戶端 1 個(gè)

  • kubectl

核心附件有如下 4 個(gè):

  • CNI 網(wǎng)絡(luò)插件 - flanel /calico
  • 服務(wù)發(fā)現(xiàn)插件 - coredns
  • 服務(wù)暴露插件 - traefik
  • GUI 管理插件 - Dashboard

核心組件

配置存儲(chǔ)中心 使用的是 ETCD 服務(wù)

主控節(jié)點(diǎn)(master)有如下 3 個(gè):

  • kube-apiserver 服務(wù)

是整個(gè) K8S 的大腦

他的作用非常強(qiáng)大嘉裤,有如下 4 個(gè)主要的功能

1郑临、提供集群管理的 RESTFUL API 接口,這里面包括鑒權(quán)屑宠,數(shù)據(jù)校驗(yàn)及集群狀態(tài)變更等

2厢洞、負(fù)責(zé)其他模塊之間的數(shù)據(jù)交互,承擔(dān)通信樞紐的功能所有組件的交互都需要通過 apiserver

3典奉、apiserver 是資源控制的入口

4躺翻、apiserver 提供完備的安全機(jī)制

  • kube-controller-manager 服務(wù)

就是用來管理控制器的 , 它由一系列控制器組成卫玖,所有的控制器都依賴于 kube-controller-manager 公你,通過 apiserver 監(jiān)控整個(gè)集群的狀態(tài),并確保他們都處于預(yù)期的工作假瞬,例如

1陕靠、Node 控制器

2迂尝、Deployment 控制器

3、service 控制器

4剪芥、Volume 控制器

5垄开、Endpoint 控制器

6、Garbage 控制器

7粗俱、Namespace 控制器

8说榆、Job 控制器

9、Resource quta 控制器 等等

  • kube-schedule 服務(wù)

主要就是接收調(diào)度 Pod 到合適的節(jié)點(diǎn)上面寸认,他有 2 個(gè)策略:

1、預(yù)算策略(predict)

2串慰、優(yōu)選策略(priorities)

運(yùn)算節(jié)點(diǎn)有如下 2 個(gè):

  • kube-kubelet 服務(wù)

kubelet 主要就是定時(shí)從某處節(jié)點(diǎn)上獲取 Pod 的期望狀態(tài)偏塞,并調(diào)用對(duì)應(yīng)的 docker 接口來達(dá)到這個(gè)狀態(tài)

此處的期望狀態(tài)有這些:

運(yùn)行的容器,副本數(shù)量邦鲫,網(wǎng)絡(luò)如何配置灸叼,存儲(chǔ)如何配置等等

1、kubelet 會(huì)定時(shí)匯報(bào)當(dāng)前節(jié)點(diǎn)的狀態(tài)給到 apiserver庆捺,用于之后調(diào)度使用

2古今、kubelet 還做鏡像和容器的清理工作,保證節(jié)點(diǎn)的鏡像不會(huì)占滿磁盤空間

  • kube-proxy 服務(wù)

kube-proxy 就是一個(gè) K8S 上運(yùn)行網(wǎng)絡(luò)的代理滔以,service 服務(wù)資源的載體

1捉腥、kube-proxy 可以建立 Pod 網(wǎng)絡(luò)和集群網(wǎng)絡(luò)的關(guān)系 (clusterip -> podip)

2、kube-proxy 負(fù)責(zé)建立你画、刪除和更新調(diào)度規(guī)則抵碟,通知 apiserver 自身更新,或者從 apiserver 獲取調(diào)度規(guī)則坏匪,更新 kube-proxy 自身

kube-proxy 常用的三種流量調(diào)度模式:

  • Userspace
  • Iptables
  • Ipvs

K8S 集群網(wǎng)絡(luò)圖示例

image

一般主控節(jié)點(diǎn)可以揉在一起部署拟逮,主控節(jié)點(diǎn)和 Pod 節(jié)點(diǎn),邏輯上是分開的适滓,物理上實(shí)際上是可以部署在一起敦迄,主控節(jié)點(diǎn)一般部署 2 個(gè)

例如可以這樣高可用部署,

image

etcd 一般部署奇數(shù)個(gè)凭迹,例如1罚屋、3、5蕊苗、7等等沿后,因?yàn)槠渲幸粋€(gè) etcd 掛了,會(huì)通過選舉投票的方式來選舉下一個(gè) etcd 作為主朽砰,若部署的是偶數(shù)個(gè) etcd 就無法選舉出結(jié)果

其中 Proxy 代理 四層網(wǎng)絡(luò)和七層網(wǎng)絡(luò)尖滚,分別主要是代理 apiserver 和 ingress 應(yīng)用

參考資料:

kubernetes docs

歡迎點(diǎn)贊喉刘,關(guān)注,收藏

朋友們漆弄,你的支持和鼓勵(lì)睦裳,是我堅(jiān)持分享,提高質(zhì)量的動(dòng)力

image

好了撼唾,本次就到這里

技術(shù)是開放的廉邑,我們的心態(tài),更應(yīng)是開放的倒谷。擁抱變化蛛蒙,向陽而生,努力向前行渤愁。

我是小魔童哪吒牵祟,歡迎點(diǎn)贊關(guān)注收藏,下次見~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末抖格,一起剝皮案震驚了整個(gè)濱河市诺苹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌雹拄,老刑警劉巖收奔,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異滓玖,居然都是意外死亡坪哄,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門呢撞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來损姜,“玉大人,你說我怎么就攤上這事殊霞〈菰模” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵绷蹲,是天一觀的道長棒卷。 經(jīng)常有香客問我,道長祝钢,這世上最難降的妖魔是什么比规? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮拦英,結(jié)果婚禮上蜒什,老公的妹妹穿的比我還像新娘。我一直安慰自己疤估,他們只是感情好灾常,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布霎冯。 她就那樣靜靜地躺著,像睡著了一般钞瀑。 火紅的嫁衣襯著肌膚如雪沈撞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天雕什,我揣著相機(jī)與錄音缠俺,去河邊找鬼。 笑死贷岸,一個(gè)胖子當(dāng)著我的面吹牛壹士,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播偿警,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼墓卦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了户敬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤睁本,失蹤者是張志新(化名)和其女友劉穎尿庐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呢堰,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抄瑟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了枉疼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片皮假。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖骂维,靈堂內(nèi)的尸體忽然破棺而出惹资,到底是詐尸還是另有隱情,我是刑警寧澤航闺,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布褪测,位于F島的核電站,受9級(jí)特大地震影響潦刃,放射性物質(zhì)發(fā)生泄漏侮措。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一乖杠、第九天 我趴在偏房一處隱蔽的房頂上張望分扎。 院中可真熱鬧,春花似錦胧洒、人聲如沸畏吓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庵佣。三九已至歉胶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巴粪,已是汗流浹背通今。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肛根,地道東北人辫塌。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像派哲,于是被迫代替她去往敵國和親臼氨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

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