เคยสงสัยเหมือนผมไหมครับ
เวลาที่เราเรียกคำสั่ง kubectl get nodes แล้วผลจะออกมาประมาณนี้ ที่ column ROLES จะแสดงข้อความเฉพาะ node ที่ทำหน้าที่เป็น Control Plane โดยที่มีข้อความว่า control-plane เท่านั้น ที่ node อื่น ๆ จะมีค่าเป็น <none> … ว่ากันไปจริง ๆ แล้วมันก็ไม่มีผลอะไรกับมาทำงานกับ Kubernetes Cluster … เพียงแต่ว่า มันก็ยังมีคำถามผุดขึ้นมาในหัว ทุกครั้งที่เราเรียกดูข้อมูลของ node ผ่านคำสั่ง kubectl get nodes คำถามที่ผ่านเข้ามาในหัวผม อย่างเช่น จะเปลี่ยนจาก <none> ให้เป็นค่าอย่างอื่นได้ไหม ถ้าจะ ต้องทำอย่างไร
เมื่อสงสัยก็หาคำตอบ
ที่พึ่งของผมก็คงไม่พ้น Google … นั่งหาไปเรื่อย นั่งลองไปเรื่อย ก็พบว่า การแสดงผลที่ column ROLES ถูกอ่านมาจาก label ของ node นั้นที่ค่า kubernetes.io/role ดังนั้นถ้าเรากำหนดค่า label ให้กับ node ผลที่ได้ก็จะประมาณนี้
> kubectl get nodes NAME STATUS ROLES AGE VERSION node Ready control-plane 11h v1.30.2 node0-0 Ready <none> 11h v1.30.2 node0-1 Ready <none> 11h v1.30.2 node0-2 Ready <none> 11h v1.30.2 > kubectl label node node0-0 kubernetes.io/role=Foo node/node0-0 labeled > kubectl get nodes NAME STATUS ROLES AGE VERSION node Ready control-plane 11h v1.30.2 node0-0 Ready Foo 11h v1.30.2 node0-1 Ready <none> 11h v1.30.2 node0-2 Ready <none> 11h v1.30.2