How to design k8s node group label?

how to design k8s node group label to make solution more extensibility?
I have two solution:

  1. use multi node group label, example:
nodegroup1:
   cpu_type: gpu
   cpu_memory: 16c64g

nodegroup2:
   cpu_type: general_cpu
   cpu_memory: 16c64g
  1. 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 ,

  1. 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
  1. 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