K8s 超詳細(xì)總結(jié)!
來源:blog.csdn.net/huakai_sun/article/details/82378856
一個(gè)目標(biāo):容器操作;兩地三中心;四層服務(wù)發(fā)現(xiàn);五種Pod共享資源;六個(gè)CNI常用插件;七層負(fù)載均衡;八種隔離維度;九個(gè)網(wǎng)絡(luò)模型原則;十類IP地址;百級(jí)產(chǎn)品線;千級(jí)物理機(jī);萬級(jí)容器;相如無億,K8s有億:億級(jí)日服務(wù)人次。
一個(gè)目標(biāo):容器操作
具體功能:
調(diào)度:容器在哪個(gè)機(jī)器上運(yùn)行。
組成:
kubectl:客戶端命令行工具,作為整個(gè)系統(tǒng)的操作入口。 kube-apiserver:以REST API服務(wù)形式提供接口,作為整個(gè)系統(tǒng)的控制入口。 kube-controller-manager:執(zhí)行整個(gè)系統(tǒng)的后臺(tái)任務(wù),包括節(jié)點(diǎn)狀態(tài)狀況、Pod個(gè)數(shù)、Pods和Service的關(guān)聯(lián)等。 kube-scheduler:負(fù)責(zé)節(jié)點(diǎn)資源管理,接收來自kube-apiserver創(chuàng)建Pods任務(wù),并分配到某個(gè)節(jié)點(diǎn)。 etcd:負(fù)責(zé)節(jié)點(diǎn)間的服務(wù)發(fā)現(xiàn)和配置共享。 kube-proxy:運(yùn)行在每個(gè)計(jì)算節(jié)點(diǎn)上,負(fù)責(zé)Pod網(wǎng)絡(luò)代理。定時(shí)從etcd獲取到service信息來做相應(yīng)的策略。 kubelet:運(yùn)行在每個(gè)計(jì)算節(jié)點(diǎn)上,作為agent,接收分配該節(jié)點(diǎn)的Pods任務(wù)及管理容器,周期性獲取容器狀態(tài),反饋給kube-apiserver。 DNS:一個(gè)可選的DNS服務(wù),用于為每個(gè)Service對(duì)象創(chuàng)建DNS記錄,這樣所有的Pod就可以通過DNS訪問服務(wù)了。
下面是K8s的架構(gòu)拓?fù)鋱D:

兩地三中心
簡單:基于http+json的api讓你用curl命令就可以輕松使用。 安全:可選SSL客戶認(rèn)證機(jī)制。 快速:每個(gè)實(shí)例每秒支持一千次寫操作。 可信:使用Raft算法充分實(shí)現(xiàn)了分布式。
四層服務(wù)發(fā)現(xiàn)
先一張圖解釋一下網(wǎng)絡(luò)七層協(xié)議:

以上兩種方式,一個(gè)是基于tcp,眾所周知,DNS是基于UDP的,它們都是建立在四層協(xié)議之上。
五種Pod共享資源

六個(gè)CNI常用插件
CNI(Container Network Interface)容器網(wǎng)絡(luò)接口,是Linux容器網(wǎng)絡(luò)配置的一組標(biāo)準(zhǔn)和庫,用戶需要根據(jù)這些標(biāo)準(zhǔn)和庫來開發(fā)自己的容器網(wǎng)絡(luò)插件。CNI只專注解決容器網(wǎng)絡(luò)連接和容器銷毀時(shí)的資源釋放,提供一套框架,所以CNI可以支持大量不同的網(wǎng)絡(luò)模式,并且容易實(shí)現(xiàn)。
七層負(fù)載均衡
IDC(Internet Data Center),也可稱 數(shù)據(jù)中心、機(jī)房,用來放置服務(wù)器。IDC網(wǎng)絡(luò)是服務(wù)器間通信的橋梁。
內(nèi)網(wǎng)接入交換機(jī):也稱為TOR(top of rack),是服務(wù)器接入網(wǎng)絡(luò)的設(shè)備。每臺(tái)內(nèi)網(wǎng)接入交換機(jī)下聯(lián)40-48臺(tái)服務(wù)器,使用一個(gè)掩碼為/24的網(wǎng)段作為服務(wù)器內(nèi)網(wǎng)網(wǎng)段。 內(nèi)網(wǎng)核心交換機(jī):負(fù)責(zé)IDC內(nèi)各內(nèi)網(wǎng)接入交換機(jī)的流量轉(zhuǎn)發(fā)及跨IDC流量轉(zhuǎn)發(fā)。 MGW/NAT:MGW即LVS用來做負(fù)載均衡,NAT用于內(nèi)網(wǎng)設(shè)備訪問外網(wǎng)時(shí)做地址轉(zhuǎn)換。 外網(wǎng)核心路由器:通過靜態(tài)互聯(lián)運(yùn)營商或BGP互聯(lián)美團(tuán)統(tǒng)一外網(wǎng)平臺(tái)。
二層負(fù)載均衡:基于MAC地址的二層負(fù)載均衡。 三層負(fù)載均衡:基于IP地址的負(fù)載均衡。 四層負(fù)載均衡:基于IP+端口的負(fù)載均衡。 七層負(fù)載均衡:基于URL等應(yīng)用層信息的負(fù)載均衡。
八種隔離維度
九個(gè)網(wǎng)絡(luò)模型原則
K8s網(wǎng)絡(luò)模型要符合4個(gè)基礎(chǔ)原則,3個(gè)網(wǎng)絡(luò)要求原則,1個(gè)架構(gòu)原則,1個(gè)IP原則。
Pod由docker0實(shí)際分配的IP Pod內(nèi)部看到的IP地址和端口與外部保持一致 同一個(gè)Pod內(nèi)的不同容器共享網(wǎng)絡(luò),可以通過localhost來訪問對(duì)方的端口,類似同一個(gè)VM內(nèi)不同的進(jìn)程。

十類IP地址
第一類
A 類:1.0.0.0-1226.255.255.255,默認(rèn)子網(wǎng)掩碼/8,即255.0.0.0。
B 類:128.0.0.0-191.255.255.255,默認(rèn)子網(wǎng)掩碼/16,即255.255.0.0。
C 類:192.0.0.0-223.255.255.255,默認(rèn)子網(wǎng)掩碼/24,即255.255.255.0。
D 類:224.0.0.0-239.255.255.255,一般用于組播。
E 類:240.0.0.0-255.255.255.255(其中255.255.255.255為全網(wǎng)廣播地址)。E 類地址一般用于研究用途。
第二類
0.0.0.0
嚴(yán)格來說,0.0.0.0 已經(jīng)不是一個(gè)真正意義上的 IP 地址了。它表示的是這樣一個(gè)集合:所有不清楚的主機(jī)和目的網(wǎng)絡(luò)。這里的不清楚是指在本機(jī)的路由表里沒有特定條目指明如何到達(dá)。作為缺省路由。
127.0.0.1 本機(jī)地址。
第三類
224.0.0.1 組播地址。
如果你的主機(jī)開啟了IRDP(internet路由發(fā)現(xiàn),使用組播功能),那么你的主機(jī)路由表中應(yīng)該有這樣一條路由。
第四類
169.254.x.x
使用了 DHCP 功能自動(dòng)獲取了 IP 的主機(jī),DHCP 服務(wù)器發(fā)生故障,或響應(yīng)時(shí)間太長而超出了一個(gè)系統(tǒng)規(guī)定的時(shí)間,系統(tǒng)會(huì)為你分配這樣一個(gè) IP,代表網(wǎng)絡(luò)不能正常運(yùn)行。
10.xxx、172.16.x.x~172.31.x.x、192.168.x.x 私有地址。
大量用于企業(yè)內(nèi)部。保留這樣的地址是為了避免亦或是哪個(gè)接入公網(wǎng)時(shí)引起地址混亂。3、心態(tài)崩了!稅前2萬4,到手1萬4,年終獎(jiǎng)扣稅方式1月1日起施行~
4、雷軍做程序員時(shí)寫的博客,很強(qiáng)大!
5、人臉識(shí)別的時(shí)候,一定要穿上衣服??!

