百度网盘链接:https://pan.baidu.com/s/15t_TSH5RRpCFXV-93JHpNw?pwd=8od3
5 node节点选择器
我们在创建pod资源的时候,pod会根据schduler进行调度,那么默认会调度到随机的一个工作节点,如果我们想要pod调度到指定节点或者调度到一些具有相同特点的node节点,可以使用pod中的nodeName或者nodeSelector字段指定要调度到的node节点。
5.1 nodeName
[root@master1 ~]# vim pod-node.yaml
apiVersion: v1
kind: Pod
metadata:
name: demo-pod
namespace: default
labels:
app: myapp
env: dev
spec:
nodeName: node1
containers:
- name: tomcat-pod-java
ports:
- containerPort: 8080
image: tomcat:8.5-jre8-alpine
imagePullPolicy: IfNotPresent
- name: busybox
image: busybox:1.28
imagePullPolicy: IfNotPresent
command:
- "/bin/sh"
- "-c"
- "sleep 3600"
[root@master1 ~]# kubectl apply -f pod-node.yaml
[root@master1 ~]# kubectl get pods -o wide //查看pod调度到哪个节点
demo-pod 2/2 Running 0 2m59s 10.244.166.134 node1
5.2 nodeSelector
指定pod调度到具有哪些标签的node节点上。
[root@master1 ~]# kubectl label nodes node2 disk=ceph //给node节点打标签,打个具有disk=ceph的标签
[root@master1 ~]# vim pod-1.yaml //定义pod的时候指定要调度到具有disk=ceph标签的node上
apiVersion: v1
kind: Pod
metadata:
name: demo-pod-1
namespace: default
labels:
app: myapp
env: dev
spec:
nodeSelector:
disk: ceph
containers:
- name: tomcat-pod-java
ports:
- containerPort: 8080
image: tomcat:8.5-jre8-alpine
imagePullPolicy: IfNotPresent
[root@master1 ~]# kubectl apply -f pod-1.yaml
[root@master1 ~]# kubectl get pods -o wide //查看pod调度到哪个节点
demo-pod-1 1/1 Running 0 68s 10.244.104.15 node2
[root@master1 ~]# kubectl label nodes node2 disk- //删除node节点打的标签
同一个yaml文件里定义pod资源,如果同时定义了nodeName和NodeSelector,那么条件必须都满足才可以,有一个不满足都会调度失败。
标签:node,master1,调度,节点,pod,root,选择器 From: https://www.cnblogs.com/KrillLiszt/p/17007190.html