开发环境,k8s 集群,指定 pod 服务运行在指定服务器上,打 lable
需求:开发提出,想要 某一个调用 pod 运行在,只运行在master 节点。环境:因为是开发 sit 环境,所以机器规格相对来说,比较小。集群有一个master 两个 node 组成。分别是 一个2-4和两个4-8 的机器。master 节点 是做了 SchedulingDisabled 的,禁止调度。192.168.0.5Ready,SchedulingDisabledmaster20dv1.
·
需求:开发提出,想要 某一个调用 pod 运行在,只运行在master 节点。
环境:因为是开发 sit 环境,所以机器规格相对来说,比较小。
集群有一个master 两个 node 组成。分别是 一个2-4和两个4-8 的机器。
master 节点 是做了 SchedulingDisabled 的,禁止调度。
192.168.0.5 Ready,SchedulingDisabled master 20d v1.14.6
192.168.0.6 Ready node 20d v1.14.6
192.168.0.7 Ready node 20d v1.14.6
一、先要允许 master 节点可被调度。
kubectl uncordon 192.168.0.5
要想再把master 节点变成不可调度,
kubectl cordon 192.168.0.5
二、制作lable,主要用于pod 调度到指定节点。
root@zhu-test:~# kubectl label node 192.168.0.5 outgress=outgress
node/192.168.0.5 labeled
root@zhu-test:~# kubectl get node --show-labels
NAME STATUS ROLES AGE VERSION LABELS
192.168.0.5 Ready master 20d v1.14.6 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=192.168.0.5,kubernetes.io/os=linux,kubernetes.io/role=master,outgress=outgress
192.168.0.6 Ready node 20d v1.14.6 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=192.168.0.6,kubernetes.io/os=linux,kubernetes.io/role=node
192.168.0.7 Ready node 20d v1.14.6 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=192.168.0.7,kubernetes.io/os=linux,kubernetes.io/role=node
三、标签打完,现在需要,调整服务到指定的 master 节点。
spec:
podManagementPolicy: OrderedReady
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: outgress
serviceName: outgress
template:
metadata:
creationTimestamp: null
labels:
app: outgress
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: outgress
operator: In
values:
- 'true'
四、ok 搞定,最后 outgress 这个服务调用 master 节点的信息。
更多推荐
已为社区贡献4条内容
所有评论(0)