您好,登錄后才能下訂單哦!
kubernetes通過watch的機(jī)制進(jìn)行每個(gè)組件的協(xié)作,每個(gè)組件之間的設(shè)計(jì)實(shí)現(xiàn)了解耦.
nodeName用于將Pod調(diào)度到指定的Node名稱上,跳過調(diào)度器直接分配.
nodeSelector用于將Pod調(diào)度到匹配Label的Node上,前提是node要有標(biāo)簽.
圖中左上角的運(yùn)維人員往節(jié)點(diǎn)中創(chuàng)建一個(gè)nginx資源.
API Server和etcd和Scheduler是master.
Kubelet和Docker是node節(jié)點(diǎn).
API Server做為唯一入口,接受create創(chuàng)建資源的屬性信息寫入到etcd中(屬性信息:名稱,鏡像名稱,限制條件),
etcd完善發(fā)現(xiàn)機(jī)制(watch)給Scheduler調(diào)度器(查看那個(gè)節(jié)點(diǎn)適合),然后綁定相關(guān)pod的網(wǎng)絡(luò)信息,
反饋給API Server,收到信息后api寫入etcd中,此時(shí)etcd存儲(chǔ)了pod的網(wǎng)絡(luò)信息(IP),node1、中的kubelet會(huì)管理pod資源,
會(huì)觸發(fā)容器的創(chuàng)建命令,安裝完成后docker就會(huì)反饋狀態(tài)信息給API Server,當(dāng)API Server收到狀態(tài)信息寫入到etcd中.
API Server相當(dāng)于是平臺(tái)中的管理員,負(fù)責(zé)記錄相關(guān)信息,
etcd相當(dāng)于管理員的記事本,相關(guān)信息內(nèi)容寫在其中,
如果API Server掛了,那么k8s基本上就癱瘓了.
vim pod5.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-example
labels:
app: nginx
spec:
nodeName: 192.168.142.131
#指定給node1節(jié)點(diǎn)
containers:
- name: nginx
image: nginx:1.15
#驗(yàn)證是否創(chuàng)建了nginx
kubectl create -f pod5.yaml
kubectl get pods
kubectl describe pod pod-example
kubectl delete -f .
kubectl get pods
kubectl label --help
kubectl get node
kubectl label nodes 192.168.142.130 kgc=a
kubectl label nodes 192.168.142.131 kgc=b
kubectl get nodes --show-labels
vim pod5.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-example
labels:
app: nginx
spec:
nodeSelector:
kgc: b
containers:
- name: nginx
image: nginx:1.15
kubectl apply -f pod5.yaml
kubectl describe pod pod-example
kubectl describe TYPE NAME_PREFIX
kubectl logs POD_NAME
kubectl exec –it POD_NAME bash
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。