问题描述
某个单独的系统需要对他进行单独的做防火墙隔离出来,用集群的几台虚机给系统使用,这些虚拟机只能这个系统使用别的系统不能使用。
方法:首先可以给几点和系统deployment打标签,可以是pod落在这些节点,其次就是在节点打污点,让别的pod不能落在该节点上,在deployment添加污点容忍,这样可以保证只有这个应用的pod落在这些节点。
1. *节点打标签*
kubectl get node
kubectl label node <ip> disktype=test
kubectl get node --show-labels
删除标签
kubectl label nodes <ip> disktype-
2. *Deployment修改添加标签*
apiVersion: apps/v1
kind: Deployment
metadata:
name: dev-nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: dev-nginx-deployment
template:
metadata:
labels:
app: dev-nginx-deployment
spec:
containers:
- name: nginx
image: nginx:1.19.5
```
nodeSelector: #应用打标签
disktype: test
```
3. *节点添加污点*
#查看节点我有点
kubectl describe node <ip>
#添加污点
kubectl taint nodes <ip> key=node:NoSchedule
4. *应用deployment修改容忍污点*
apiVersion: apps/v1
kind: Deployment
metadata:
name: dev-nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: dev-nginx-deployment
template:
metadata:
labels:
app: dev-nginx-deployment
spec:
containers:
- name: nginx
image: nginx:1.19.5
```
nodeSelector:
disktype: test
tolerations:
- key: key
operator: Exists
effect: NoSchedule
```
5. *删除污点*
kubectl taint nodes <ip> key-