master/node
master: API Server. Scheduler, Controller-Manager
node: kubeler, docker, kube-proxy
Pod, Label, Label Selector
Label: key=value
Label Selector:
Pod :
自主式Pod
控制器管理的Pod
ReplicationController
ReplicaSer
Deployment
StatefulSet
DaemonSet
Job, Ctonjob
HPA:水平pod可自動(dòng)伸縮控制器
HorizontalPodAutoscaler
自動(dòng)發(fā)現(xiàn):service
Pod 啟動(dòng)后會(huì)向servicer調(diào)度器上報(bào)pod的Label標(biāo)簽驶拱,然后調(diào)度器探測(cè)pod的IP和端口客蹋,完成調(diào)整端轉(zhuǎn)發(fā)昨登,其實(shí)service調(diào)度器就是利用iptables 的DNAT規(guī)則實(shí)現(xiàn)壮虫。
AddOns(附件):
DNS:動(dòng)態(tài)改變,動(dòng)態(tài)添加思瘟、動(dòng)態(tài)刪除荸百。如果手動(dòng)把service 名稱或地址改變,就會(huì)自動(dòng)觸發(fā)DNS解析記錄也改動(dòng)
客戶端訪問service服務(wù)名到kubernetes集群內(nèi)部DNS解析, 解析到service地址滨攻,然后service 代理轉(zhuǎn)發(fā)給后端pod够话,這個(gè)的代理轉(zhuǎn)發(fā)其實(shí)交給了IPVS 實(shí)現(xiàn)蓝翰,也就每創(chuàng)建一個(gè)service 都會(huì)創(chuàng)建一條DNAT 的IPVS規(guī)則
NMT
controller
service
pod
DNS
kubernetes 三個(gè)網(wǎng)絡(luò):
node:節(jié)點(diǎn)網(wǎng)絡(luò)
service: 集群網(wǎng)絡(luò)
pod: pod網(wǎng)絡(luò)
三位通信:
同一個(gè)Pod內(nèi)的多個(gè)容器間通信:lo本地通信
各Pod之間的通信:網(wǎng)橋,Overlay Network疊加網(wǎng)絡(luò)
Pod與Service之間的通信
CNI:
flannel: 支持網(wǎng)絡(luò)配置女嘲,使用起來簡(jiǎn)單
calico: 支持網(wǎng)絡(luò)配置畜份,網(wǎng)絡(luò)策略,使用起來負(fù)責(zé)
canel: 支持網(wǎng)絡(luò)配置欣尼,網(wǎng)絡(luò)策略爆雹,以上兩者的結(jié)合