Add a compute node
This is a guide to add a compute node on the existing burrito cluster.
I assume the new compute node name is bon-compute2 and the IP address is 192.168.21.124
All the works are done on the ansible deployer.
Define the new compute node
Add bon-compute2 hostname and IP in /etc/hosts.:
$ sudo vi /etc/hosts
192.168.21.124 bon-compute2
Edit inventory hosts to add the new compute node.:
$ diff -u hosts.bak hosts
--- hosts.bak 2023-02-20 13:54:45.365350417 +0900
+++ hosts 2023-02-20 14:43:02.897660764 +0900
@@ -1,6 +1,7 @@
bon-controller ip=192.168.21.121 ansible_connection=local ansible_python_interpreter=/usr/bin/python3
bon-compute ip=192.168.21.122
bon-storage ip=192.168.21.123 monitor_address=192.168.24.123 radosgw_address=192.168.24.123
+bon-compute2 ip=192.168.21.124
# ceph nodes
[mons]
@@ -18,14 +19,16 @@
[clients]
bon-controller
bon-compute
+bon-compute2
# kubernetes nodes
[kube_control_plane]
bon-controller
[kube_node]
bon-controller
bon-compute
+bon-compute2
# openstack nodes
[controller-node]
@@ -36,6 +39,7 @@
[compute-node]
bon-compute
+bon-compute2
Check the connection to the new node bon-compute2.:
$ ./run.sh ping
bon-compute2 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/libexec/platform-python"
},
"changed": false,
"ping": "pong"
}
Install on the new node
Run preflight playbook for bon-compute2.:
$ ./run.sh preflight --limit=bon-compute2
Run ceph playbook.:
$ ./run.sh ceph --limit=bon-compute2
Add the node to k8s cluster.:
$ ./run.sh scale --limit=bon-compute2
Check if the new node is added as a k8s node.:
$ sudo kubectl get nodes
NAME STATUS ROLES AGE VERSION
bon-compute Ready <none> 3d15h v1.24.8
bon-compute2 Ready <none> 3m39s v1.24.8
bon-controller Ready control-plane 3d15h v1.24.8
Run burrito playbook with k8s-burrito and novakey-burrito tags.:
$ ./run.sh burrito --tags=k8s-burrito,novakey-burrito
Check the node is added as a compute node.:
root@btx-0:/# openstack compute service list
+--------------------------------------+----------------+---------------------------------+----------+---------+-------+----------------------------+
| ID | Binary | Host | Zone | Status | State | Updated At |
+--------------------------------------+----------------+---------------------------------+----------+---------+-------+----------------------------+
| e0a00939-3d0a-41d8-be9b-9dbb22ee5f11 | nova-scheduler | nova-scheduler-76c5874458-dlx8n | internal | enabled | down | 2023-02-20T07:21:53.000000 |
| 5d047fa1-0691-470a-803d-2df4a83dc1a3 | nova-conductor | nova-conductor-86c647ffdd-5l9md | internal | enabled | down | 2023-02-20T07:21:53.000000 |
| d7f9e8fc-13f5-4860-8573-116d09147850 | nova-compute | bon-compute | nova | enabled | up | 2023-02-20T07:56:01.000000 |
| 9b44d557-308e-4cd5-93c1-61843a2078da | nova-compute | bon-compute2 | nova | enabled | up | 2023-02-20T07:56:06.000000 |
| 8f9aa838-0f4d-4029-b4df-9cbd89750723 | nova-scheduler | nova-scheduler-869cd8674d-7mcmp | internal | enabled | up | 2023-02-20T07:56:03.000000 |
| a1eae609-fa72-40f7-b7c4-300362a50fed | nova-conductor | nova-conductor-5c8f7fd658-6mbrp | internal | enabled | up | 2023-02-20T07:56:04.000000 |
+--------------------------------------+----------------+---------------------------------+----------+---------+-------+----------------------------+
root@btx-0:/# openstack hypervisor list
+----+---------------------+-----------------+----------------+-------+
| ID | Hypervisor Hostname | Hypervisor Type | Host IP | State |
+----+---------------------+-----------------+----------------+-------+
| 1 | bon-compute | QEMU | 192.168.21.122 | up |
| 2 | bon-compute2 | QEMU | 192.168.21.124 | up |
+----+---------------------+-----------------+----------------+-------+