工做流程
K8s經過watch實現組件工做。
一、管理員經過命令建立Pod-->apiserver接收到-->狀態寫入到etcd-->scheduler經過watch獲取etcd中獲取新的Pod-->經過算法選出pod應該調度到哪些節點內-->綁定到新的節點並更新到etcd中
二、kubelet經過watch從etcd中獲取到綁定到本身節點的pod-->將pod經過docker run啓動運行--> 在將狀態(運行狀態)更新到etcd中,根據kubelet週期上報
三、管理員查看pod狀態 --> 查找etcd中pod狀態 --> 返回給用戶node
# 使用方法 apiVersion: v1 kind: Pod metadata: name: pod-example labels: app: nginx spec: nodeName: 192.168.31.65 containers: - name: nginx image: nginx:1.15
apiVersion: v1 kind: Pod metadata: name: pod-example spec: nodeSelector: env_role: dev containers: - name: nginx image: nginx:1.15
一、建立測試pod
vim pod5.yamllinux
apiVersion: v1 kind: Pod metadata: name: pod-example labels: app: nginx spec: nodeName: 192.168.1.111 containers: - name: nginx image: nginx:1.15
二、建立文件nginx
kubectl create -f pod5.yaml
三、查看pod調度節點算法
NAME READY STATUS RESTARTS AGE IP NODE
pod-example 1/1 Running 0 42s 172.17.1.4 192.168.1.111 <none>
四、查看詳情;直接繞過調度器docker
... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Pulling 9m8s kubelet, 192.168.1.111 pulling image "nginx:1.15" Normal Pulled 8m48s kubelet, 192.168.1.111 Successfully pulled image "nginx:1.15" Normal Created 8m48s kubelet, 192.168.1.111 Created container Normal Started 8m47s kubelet, 192.168.1.111 Started container
一、給指定Node設置標籤 ;爲 team團隊ab隊(自定義=自定義)vim
kubectl label nodes 192.168.1.111 team=a
kubectl label nodes 192.168.1.110 team=b
二、查看標籤api
NAME STATUS ROLES AGE VERSION LABELS 192.168.1.110 Ready <none> 2d15h v1.12.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.1.110,team=b 192.168.1.111 Ready <none> 2d15h v1.12.1 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=192.168.1.111,team=a
三、建立文件經過標籤指定Node
vim pod6.yamlapp
apiVersion: v1 kind: Pod metadata: name: pod-example spec: nodeSelector: team: b containers: - name: nginx image: nginx:1.15
四、查看狀態ide
NAME READY STATUS RESTARTS AGE IP NODE
pod-example 1/1 Running 0 29s 172.17.84.2 192.168.1.110 <none>
五、查看詳情;走默認調度測試
... node.kubernetes.io/unreachable:NoExecute for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 83s default-scheduler Successfully assigned default/pod-example to 192.168.1.110 Normal Pulling 81s kubelet, 192.168.1.110 pulling image "nginx:1.15" Normal Pulled 67s kubelet, 192.168.1.110 Successfully pulled image "nginx:1.15" Normal Created 66s kubelet, 192.168.1.110 Created container mal Started 66s kubelet, 192.168.1.110 Started container