kubernetes(k8s)-33之固定節點調度schedule

一、目標

學習掌握什麼是kubernetes(k8s)固定節點調度

二、平臺

[[email protected] ~]# uname -r
3.10.0-957.el7.x86_64
[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 
[root@master qinhe]# rpm -qa |grep kube
kubeadm-1.17.3-0.x86_64
kubernetes-cni-0.7.5-0.x86_64
kubelet-1.17.3-0.x86_64
kubectl-1.17.3-0.x86_64

各主機規劃:
主機名          IP                       角色                       端口
master  192.168.73.150    master,node        
node1   192.168.73.151    node                      
node2   192.168.73.152    node 
harbor   192.168.73.160   harbor私服

三、前言

1.之前創建deployment的時候,假定指定副本有3個,那麼它不可能同時都放到一個節點服務器。
2.現在使用調度參數就能讓k8s指定一個特定的節點服務器來生成deployment

四、指定pod被調度到特定的節點服務器上

1.創建調度配置文件

[root@master schedule]# vim a1-schedule-pod.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      app: my-nginx
  replicas: 3
  template:
    metadata:
      labels:
        app: my-nginx
    spec:
      nodeName: node1.hiibm.com
      containers:
      - name: my-nginx
        image: harbor.hiibm.com/public/xnginx:v1.5.20200306
        ports:
        - containerPort: 80

註釋:
創建Deployment的yaml配置文件,
replicas: 3   ----------->指定副本爲3,
nodeName: node1.hiibm.com   ----------->指定必鬚生成在指定的節點服務器node1上

2.使用硬性調度生成Deployment,並查看資源是否只分配到了我們指定的node1節點服務器上了

kubectl apply -f a1-schedule-pod.yaml
kubectl get pod -owide

 

五、指定pod被調度到特定標籤鍵值的節點服務器上

1.創建配置文件
該配置文件意思是,本deployment生成前,先去檢查物理node服務器的標籤是否有鍵值符合xlabelkey: kahnvalue的k8s節點服務器,如果這樣的服務器存在,我才能在這樣任何服務器上生成pod。

[root@master schedule]# vim a2-schedule-pod.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mynginx2
spec:
  selector:
    matchLabels:
      app: mynginx2
  replicas: 2
  template:
    metadata:
      labels:
        app: mynginx2
    spec:
      nodeSelector:
        xlabelkey: kahnvalue
      containers:
      - name: mynginx2
        image: harbor.hiibm.com/public/xnginx:v1.5.20200306
        ports:
        - containerPort: 80

註釋:
nodeSelector:   -----------------------------> 節點選擇器
xlabelkey: kahnvalue   --------------------> 節點選擇器的條件,選擇標籤鍵是xlabelkey,且鍵值是kahnvalue的物理節點服務器。

2.使用配置文件生成pod,並查看結果

kubectl apply -f a2-schedule-pod.yaml
kubectl get pod -owide

3.給某個服務器打上個自定義標籤
註釋:給node1.hiibm.com服務器打上一個標籤,鍵xlabelkey的值是kahnvalue

kubectl label node node1.hiibm.com xlabelkey=kahnvalue

4.再去看看pod的狀態。
囉嗦:剛剛已經給node1服務器打上yaml中需要的標籤鍵值,現在再看看pod是否生成在了node1服務器上了。
kubectl get pod -owide
從結果上可以看到,給node1打上指定的自定義標籤後,pod立即就生成了。正是我們想要的結果。

5.囉嗦,你可以給任意多個服務器打上這個標籤,那麼他們就可以在任意多個服務器上生成pod了。

--------------------END--------------2020年3月9日17:07:58----------------------

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章