how to design k8s node group label to make solution more extensibility?
I have two solution:
- use multi node group label, example:
nodegroup1:
cpu_type: gpu
cpu_memory: 16c64g
nodegroup2:
cpu_type: general_cpu
cpu_memory: 16c64g
- use one node group label, example:
nodegroup1:
type: gpu_16c64g
nodegroup2:
type: general_cpu_16c64g
In future, If i want to add another node group which is used for gpu with high iops disk ,
- the first solution will be:
nodegroup1:
cpu_type: gpu
cpu_memory: 16c64g
disk_type: high_iops
nodegroup2:
cpu_type: gpu
cpu_memory: 16c64g
disk_type: normal_iops
nodegroup3:
cpu_type: general_cpu
cpu_memory: 16c64g
disk_type: normal_iops
- the second solution will be:
nodegroup1:
type: gpu_16c64g //disk_type use default normal_iops
nodegroup2:
type: gpu_16c64g_high_iops
nodegroup2:
type: general_cpu_16c64g //disk_type use default normal_iops
But the first solution will be have some compatibility,Because there are already some deployment use the node select with
NodeSelect:
cpu_type: gpu
cpu_memory: 16c64g
when this deployment use the old node select, they may be scheduled to VM node which have high iops disk
ps: I don’t want to use node taints