
กรณีที่เคยติดตั้ง Kubernetes cluster โดยใช้ Ansible (role lablabs.rke2) แล้วต้องการเพิ่มโนดในภายหลัง หรือแทนที่โนดที่เคยลบไปแล้ว สามารถทำได้โดยมีขั้นตอนดังนี้
- (เฉพาะกรณีการแทนที่โนดที่เคยลบไปแล้ว) ลบระเบียนโนดนั้นออกจากไฟล์
known_hosts
ของสถานีงาน - คัดลอก public key ไปไว้ในไฟล์
authorized_keys
ของโนดใหม่ - (เฉพาะกรณีเพิ่มโนดใหม่) เพิ่มข้อมูลของโนดใหม่ในไฟล์
hosts
- เรียกใช้คำสั่ง
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