Спрощення розгортання Kubernetes: Налаштування локального кластера за допомогою віртуальних машин Lima та Kubespray

pic

Вступ

Цей посібник надає покрокову інструкцію з налаштування локального кластера Kubernetes за допомогою віртуальних машин (VM) Lima та Kubespray. Він призначений для розробників і системних адміністраторів, які хочуть тестувати, навчатися або експериментувати з Kubernetes у локальному середовищі. Завдяки віртуальним машинам Lima ви можете змоделювати багатонодову архітектуру Kubernetes без необхідності використовувати хмарні ресурси, що дозволяє створити економічно ефективне та гнучке середовище.

Цей документ охоплює наступні теми:

  • Створення та налаштування віртуальних машин Lima.
  • Провізіювання кластерів Kubernetes за допомогою Kubespray.
  • Керування файлами kubeconfig для доступу до кластерів.
  • Очистка ресурсів після завершення використання.

Слідуйте цій інструкції, щоб швидко налаштувати локальний кластер Kubernetes і почати вивчати його можливості.

Передумови

  • Lima має бути встановлений і здатний створювати віртуальні машини.

Кроки

  1. Створіть 3 локальні віртуальні машини та додайте диски.
  2. Провізіонуйте віртуальні машини за допомогою Kubespray.
  3. Створіть kubeconfig.
  4. Очистка.

Створення віртуальних машин, віртуальних дисків та підключення дисків

  • Створіть віртуальні машини Lima з мережею user-v2, щоб вони могли спілкуватися між собою. Пересоздайте default, якщо він не знаходиться в мережі user-v2, щоб kubespray міг отримати доступ до інших віртуальних машин.
limactl delete default  
limactl create --vm-type=vz --rosetta --network=lima:user-v2 --name=default  
limactl create --vm-type=vz --rosetta --cpus=8 --memory=10 --network=lima:user-v2 --name=node-1  
limactl create --vm-type=vz --rosetta --cpus=8 --memory=10 --network=lima:user-v2 --name=node-2  
limactl create --vm-type=vz --rosetta --cpus=8 --memory=10 --network=lima:user-v2 --name=node-3
  • Створіть віртуальні диски з форматом raw (відредагуйте розмір за необхідності):
limactl disk create disk-1 --size 5G --format raw  
limactl disk create disk-2 --size 5G --format raw  
limactl disk create disk-3 --size 5G --format raw
  • Дозвольте редагування на віртуальних машинах за умовчанням:
limactl edit default --mount-writable
  • Оновіть конфігурацію для кожної віртуальної машини, щоб підключити диски. Приклад для node-1, у файлі ~/.lima/node-1/lima.yaml:
additionalDisks:  
- name: "disk-1"  
 format: false
  • Запустіть віртуальні машини та перевірте підключення дисків:
limactl start   
limactl shell node-1 sudo fdisk -l /dev/vdb

pic

Провізіонування віртуальних машин за допомогою Kubespray

  • Клонуйте репозиторій Kubespray:
git clone --single-branch --branch release-2.26 https://github.com/kubernetes-sigs/kubespray.git kubespray-release-2.26
  • Створіть нову папку для налаштувань Ansible:
cp -rfp inventory/sample inventory/lima
  • Створіть образ Kubespray:
nerdctl.lima build . -t kubespray:dev
  • Запустіть образ з прикріпленою папкою inventory:
nerdctl.lima run \  
 -u root \  
 -v ./inventory:/kubespray/inventory \  
 -v ~/.ssh:/root/.ssh \  
 --rm -it --name kubespray-dev \  
 kubespray:dev /bin/bash
  • Усередині образу встановіть необхідні залежності:
pip install -r contrib/inventory_builder/requirements.txt
  • Створіть конфігураційний файл (замініть IP-адреси на IP-адреси ваших віртуальних машин):
CONFIG_FILE=inventory/lima/hosts.yaml python3 contrib/inventory_builder/inventory.py 192.168.104.6 192.168.104.7 192.168.104.8
  • Отримайте свій публічний ключ SSH з ~/.ssh/idrsa.pub_ і додайте його до файлу ~/.ssh/authorizedkeys_ на віртуальних машинах.
  • Якщо у вас вже є пара ключів SSH на локальній машині, публічний ключ буде автоматично доданий до файлу authorizedkeys_ на віртуальних машинах.
  • Скопіюйте приватний ключ з вашої локальної машини на віртуальні машини Kubespray і встановіть його права доступу на 600 за допомогою:
chmod 600 ~/.ssh/id_rsa
  • Провізіонуйте кластер:
ansible-playbook -i inventory/lima/hosts.yaml -u lima --become --become-user=root -K cluster.yml
  • Через деякий час провізіонування має завершитись. Наприклад:

pic

Якщо цього не сталося, перевірте виведення і виправте можливі проблеми.

Створення файлу Kubeconfig

  • Оновіть права доступу для файлу kubeconfig на контролері:
ssh lima@localhost -p 60222  
sudo chown -R lima:lima /etc/kubernetes/admin.conf
  • Скопіюйте файл kubeconfig:
scp -P 60222 lima@localhost:/etc/kubernetes/admin.conf ~/.kube/kubespray-lima.conf
  • Завантажте конфігурацію для kubectl:
export KUBECONFIG=~/.kube/kubespray-lima.conf
  • Перевірте налаштування кластера:
kubectl cluster-info

pic

kubectl get nodes

pic

Очистка

  • Скидайте стан Kubernetes (опціонально):
ansible-playbook -i inventory/lima/hosts.yaml -u lima --become --become-user=root -K reset.yml
  • Видаліть інстанси віртуальних машин:
limactl delete node-1  
limactl delete node-2  
limactl delete node-3

Висновок

Дотримуючись цього посібника, ви зможете налаштувати локальний кластер Kubernetes за допомогою віртуальних машин Lima та Kubespray. Це налаштування ідеально підходить для розробки, тестування та навчання Kubernetes без необхідності використовувати хмарні ресурси. Воно також надає гнучкість для масштабування та налаштувань конфігурацій. Для подальшого навчання ознайомтесь з документацією Kubespray та офіційним посібником Lima.

Щасливих експериментів!

Перекладено з: Simplify Kubernetes Deployment: Local Cluster Setup with Lima VMs and Kubespray

Leave a Reply

Your email address will not be published. Required fields are marked *