การเพิ่มโนดใน Kubernetes cluster (RKE 2) โดยใช้ Ansible (role lablabs.rke2) 1


แผนภาพแสดงการเพิ่มโนดใน Kubernetes cluster

กรณีที่เคยติดตั้ง Kubernetes cluster โดยใช้ Ansible (role lablabs.rke2) แล้วต้องการเพิ่มโนดในภายหลัง หรือแทนที่โนดที่เคยลบไปแล้ว สามารถทำได้โดยมีขั้นตอนดังนี้

  1. (เฉพาะกรณีการแทนที่โนดที่เคยลบไปแล้ว) ลบระเบียนโนดนั้นออกจากไฟล์ known_hosts ของสถานีงาน
  2. คัดลอก public key ไปไว้ในไฟล์ authorized_keys ของโนดใหม่
  3. (เฉพาะกรณีเพิ่มโนดใหม่) เพิ่มข้อมูลของโนดใหม่ในไฟล์ hosts
  4. เรียกใช้คำสั่ง ansible-playbook อีกครั้ง

ลบระเบียนโนดเก่าออกจากไฟล์ known_hosts

กรณีการแทนที่โนดที่เคยลบไปแล้ว ให้ลบระเบียนโนดนั้นออกจากไฟล์ known_hosts ของสถานีงานก่อน โดยใช้คำสั่ง ssh-keygen -R <ชื่อโฮสต์ของโนดเก่า>

ssh-keygen -R master01.k8s.example.com

คัดลอก public key ไปไว้ในไฟล์ authorized_keys ของโนดใหม่

สามารถคัดลอก public key ไปไว้ในไฟล์ authorized_keys ของโนดใหม่ได้โดยใช้คำสั่ง ssh-copy-id <ชื่อผู้ใช้>@<เครื่องแม่ข่าย> ตัวอย่างเช่น

ssh-copy-id [email protected]

เพิ่มข้อมูลของโนดใหม่ในไฟล์ hosts

หากมีโนดใหม่ที่ต้องการเพิ่ม ให้เพิ่มข้อมูลของโนดใหม่ ตามตัวอย่างดังต่อไปนี้

k8s_cluster:
  children:
    masters:
      hosts:
        master01.k8s.example.com:
          ansible_user: root
          rke2_type: server
        master02.k8s.example.com:
          ansible_user: root
          rke2_type: server
        master03.k8s.example.com:
          ansible_user: root
          rke2_type: server
    workers:
      hosts:
        worker01.k8s.example.com:
          ansible_user: root
          rke2_type: agent

จากตัวอย่างจะเป็นการเพิ่มโนด worker01.k8s.example.com ที่ทำหน้าที่เป็น worker (ใน RKE 2 จะใช้คำว่า agent)

เรียกใช้คำสั่ง ansible-playbook อีกครั้ง

หากเป็น Kubernetes cluster ที่ติดตั้งโดยใช้ Ansible (role lablabs.rke2) สามารถเรียกใช้ Ansible playbook เดิมเพื่อเพิ่มโนดได้

จัดเตรียมเครื่องใหม่ (ติดตั้งโปรแกรม tar, ปิด swap, และปิด firewalld) โดยใช้คำสั่ง:

ansible-playbook -i hosts prepare.yaml

ติดตั้ง RKE 2 บนโนดใหม่ และเพิ่มโนดใหม่ในคลัสเตอร์ โดยใช้คำสั่ง:

ansible-playbook -i hosts deploy.yaml

และรอให้ชุดคำสั่งหยุดทำงาน

เมื่อชุดคำสั่งหยุดทำงานแล้ว ตรวจสอบรายการโนดทั้งหมดโดยใช้คำสั่ง kubectl get node ตัวอย่างเช่น

$ kubectl get node
NAME                        STATUS   ROLES                       AGE     VERSION
master01.k8s.example.com    Ready    control-plane,etcd,master   19d     v1.25.3+rke2r1
master02.k8s.example.com    Ready    control-plane,etcd,master   19d     v1.25.3+rke2r1
master03.k8s.example.com    Ready    control-plane,etcd,master   19d     v1.25.3+rke2r1
worker01.k8s.example.com    Ready    <none>                      7m21s   v1.25.3+rke2r1

จากตัวอย่าง จะเห็นได้ว่ามีโนดเพิ่มขึ้นมาใหม่ คือ worker01.k8s.example.com


แสดงความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *

หนึ่งความคิดเห็นบน “การเพิ่มโนดใน Kubernetes cluster (RKE 2) โดยใช้ Ansible (role lablabs.rke2)