- 前提条件
0.0 环境准备
0.1 安装docker
0.2 安装k8s - 使用标签分类工作节点【当运维团队向集群添加新节点时,他们将通过附加标签来对节点进行分类,这些标签指定节点提供的硬件类型,或者任何在调度pod时能提供便利的其他信息】
- 查看所有node节点
kubectl get nodes
- 给node节点加标签(假设以上命令查到的node name为iz0jl292pbpfbh34wo7707z)
kubectl label node iz0jl292pbpfbh34wo7707z gpu=true
- 列出指定标签的node节点
kubectl get node -l gpu=true
- 列出所有节点并展示gpu标签值
kubectl get nodes -L gpu
- 查看所有node节点
- 将pod调度到特定节点(新建文件kubia-gpu.yaml)
apiVersion: v1
kind: Pod
metadata:
name: kubia-gpu
spec:
nodeSelector:
gpu: "true"
containers:
- image: nuptaxin/kubia
name: kubia-gpu-c
ports:
- containerPort: 8080
protocol: TCP
- 创建pod(如果修改标签gpu不为true
kubectl label node iz0jl292pbpfbh34wo7707z gpu=false
,则该pod不可调度,status一直为Pending)
kubectl create -f kubia-gpu.yaml
- 调度到一个特定节点【我们可以将pod调度到某个确定的节点,由于每个节点都有一个唯一标签,其中键为kubernetes.io/hostname,值为该节点的实际主机名。但如果节点离线,通过hostname将nodeSelector设置的特定节点可能会导致pod不可调度。】
- 资源清理
kubectl delete pod kubia-gpu