您好,登錄后才能下訂單哦!
kubernetes通過watch的機制進行每個組件的協作,每個組件之間的設計實現了解耦.
nodeName用于將Pod調度到指定的Node名稱上,跳過調度器直接分配.
nodeSelector用于將Pod調度到匹配Label的Node上,前提是node要有標簽.
圖中左上角的運維人員往節點中創建一個nginx資源.
API Server和etcd和Scheduler是master.
Kubelet和Docker是node節點.
API Server做為唯一入口,接受create創建資源的屬性信息寫入到etcd中(屬性信息:名稱,鏡像名稱,限制條件),
etcd完善發現機制(watch)給Scheduler調度器(查看那個節點適合),然后綁定相關pod的網絡信息,
反饋給API Server,收到信息后api寫入etcd中,此時etcd存儲了pod的網絡信息(IP),node1、中的kubelet會管理pod資源,
會觸發容器的創建命令,安裝完成后docker就會反饋狀態信息給API Server,當API Server收到狀態信息寫入到etcd中.
API Server相當于是平臺中的管理員,負責記錄相關信息,
etcd相當于管理員的記事本,相關信息內容寫在其中,
如果API Server掛了,那么k8s基本上就癱瘓了.
vim pod5.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-example
labels:
app: nginx
spec:
nodeName: 192.168.142.131
#指定給node1節點
containers:
- name: nginx
image: nginx:1.15
#驗證是否創建了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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。