pod可以根据要求让pod调度到想要的节点上运行,或者不在某节点运行。
1、查看现有节点运行环境已有标签
kubectl get nodes --show-labels
2、添加标签
#给节点node1打上标签env=uat
kubectl label node node1 env=uat
#给节点node2打上标签env=prod
kubectl label node node2 env=prod
#查看生成的标签
kubectl get node --show-labels
3、指定标签分发pod
例子1:
1.创建pod时候指定调度节点
cat nginx.yaml
增加以下参数
nodeSelector: #添加此行
env: uat #指定标签
[root@k8s-master-1 k8s]#cat nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-node1
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
nodeSelector: #添加此行
env: uat #指定标签
containers:
- name: nginx-node1
image: nginx:latest
ports:
- containerPort: 80
2.执行生成pod
kubectl apply -f nginx.yaml
3.查看分发pod在哪个node上
kubectl get pods -o wide
例子2:
修改已经生成的pod,调度到指定节点
1.当前节点pod重启多次无法正常运行,尝试调度到其他节点
kubectl get pod -n drugs-erp -o wide文章来源:https://www.toymoban.com/news/detail-730884.html
2.查看当前标签情况
kubectl get node --show-labels
3.通过修改deplyment控制器调度到其他节点
查看控制器
kubectl get deploy -n drugs-erp
4.修改控制参数
kubectl edit deploy drugs-erp-store -n drugs-erp -o yaml
#同样增加以下参数
nodeSelector: #添加此行
mmp: myj #指定标签
5.重新调度新的节点,查看pod已经正常服务
kubectl get pod -n drugs-erp -o wide
文章来源地址https://www.toymoban.com/news/detail-730884.html
5、删除标签
#删除节点1标签env=uat
kubectl label node node1 env-
#删除节点2标签env=prod
kubectl label node node2 env-
到了这里,关于云原生 | k8s节点打标签的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!