ขัดหูขัดตากับ <none> ใน Role เวลา get nodes

เคยสงสัยไหมครับ เวลา get nodes ในแถว Role มันจะมีค่าเฉพาะ Control Plane และใน node อื่น ๆ จะมีค่าเป็น <none>

author image
drs

Technology evangelistic advocacy

Posted on 2024-08-24 00:51:47 +0700

เคยสงสัยเหมือนผมไหมครับ

เวลาที่เราเรียกคำสั่ง 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

Share on

Tags

Human knowledge belongs to the world

a line from the movie "Antitrust"