k8s-pod选择node节点
1. node节点label管理
1.1 给节点加label
- 语法:
# kubectl label node Node_Name Key=Value - 示例
# kubectl label node gpu3 gpu-use=true
1.2 查看label
- 语法
Kubectl get node gpu3 --show-labels
1.3 修改label
- 语法
kubectl label node Node_Name Key=Value –overwrite
说明:添加label命令加上 --overwrite参数
- 示例
kubectl label node gpu3 gpu-use=true --overwrite
1.4 删除lable
- 语法
kubectl label node Node_Name Key-
说明:删除一个key,只需把key的后边加一个减号即可
- 示例
# kubectl label node gpu3 gpu_use-
2 pod选择node节点
说明:pod根据node的label选择节点
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: nvidia-device-plugin-daemonset
namespace: kube-system
spec:
template:
metadata:
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ""
labels:
name: nvidia-device-plugin-ds
spec:
tolerations:
- key: CriticalAddonsOnly
operator: Exists
#添加如下两行
nodeSelector:
gpu-use: "true"
containers:
- image: nvidia/k8s-device-plugin:1.11
name: nvidia-device-plugin-ctr
securityContext:
capabilities:
drop: ["ALL"]
volumeMounts:
- name: device-plugin
mountPath: /var/lib/kubelet/device-plugins
volumes:
- name: device-plugin
hostPath:
path: /var/lib/kubelet/device-plugins