Установка Kubernetes с помощью kubespray
Пошаговые инструкции
Как это сделать: установка Kubernetes с использованием Kubespray, включая настройку окружения, настройку инвентаризации и запуск playbook Ansible.
Предварительные требования
Требования к аппаратному и программному обеспечению
- Убедитесь, что у вас есть несколько машин (минимум 3 узла: 1 мастер и 2 воркера) с следующими характеристиками:
- Установлен Ubuntu 16.04/18.04 или CentOS 7.
- Минимум 2 ГБ оперативной памяти на каждую машину (рекомендуется больше памяти для крупных кластеров).
- Сетевое подключение и доступ по SSH с машины управления Kubespray до каждого узла.
- Для обеспечения высокой доступности рассмотрите узлы с 16 ГБ оперативной памяти, 100 ГБ диска и 6 ядер процессора.
Настройка управляющей машины
-
Установите Git, если он еще не установлен:
sudo apt install git-all
-
Установите Python (2.7 или 3.5+) и pip:
sudo apt update sudo apt install python3 python3-pip
-
Установите Ansible и другие зависимости. Kubespray предоставляет скрипт для этого:
git clone https://github.com/kubernetes-sigs/kubespray.git cd kubespray git checkout release-2.20 # Необязательно: переход к устойчивому релизу python3 -m venv venv # Создание виртуальной среды Python source venv/bin/activate # Активация виртуальной среды pip install -r requirements.txt # Установка Ansible и других зависимостей
Настройка инвентаризации
-
Скопируйте пример инвентаризации:
cp -r inventory/sample inventory/mycluster
-
Отредактируйте файл
inventory/mycluster/hosts.ini
, чтобы добавить ваши узлы:[all] node1 ansible_host=10.10.1.3 ansible_user=ubuntu node2 ansible_host=10.10.1.4 ansible_user=ubuntu node3 ansible_host=10.10.1.5 ansible_user=ubuntu [kube-master] node1 [kube-node] node2 node3
-
Если у вас есть другой пользователь, замените
ubuntu
на вашего пользователя. -
Вы также можете использовать скрипт
inventory_builder
, чтобы сгенерировать файл инвентаризации:declare -a IPS=(10.10.1.3 10.10.1.4 10.10.1.5) HOST_PREFIX=dcm-cp- KUBE_CONTROL_HOSTS=3 CONFIG_FILE=inventory/mycluster/hosts.yaml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
Настройка конфигурации
-
Настройте параметры кластера Kubernetes в файле
inventory/mycluster/group_vars/k8s_cluster/k8s-cluster.yml
. Например:kube_network_plugin: flannel kubeconfig_localhost: true
-
Для обеспечения высокой доступности настройте VIP и балансировщик нагрузки:
# В inventory/mycluster/group_vars/all/all.yml kube_vip_arp_enabled: true kube_vip_enabled: true kube_vip_controlplane_enabled: true kube_vip_address: 10.7.12.250 # Обновите с правильным VIP kube_vip_interface: eno1 # Обновите с правильным интерфейсом
Развертывание кластера
- Запустите playbook Ansible для развертывания Kubernetes:
ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v --become --become-user=root --private-key=~/.ssh/private_key
После развертывания
- После завершения развертывания вы найдете файл
kubeconfig
в директорииinventory/mycluster/artifacts
. Этот файл необходим для взаимодействия с вашим кластером Kubernetes с помощьюkubectl
.export KUBECONFIG=inventory/mycluster/artifacts/admin.conf kubectl get nodes
Устранение неполадок и доступ
- Чтобы устранить неполадки или получить доступ к кластеру, убедитесь, что у вас установлен бинарный файл
kubectl
на вашей управляющей машине или на любом другом компьютере, с которого вы планируете управлять кластером. - Если вы сталкиваетесь с проблемами, такими как неготовность узлов-воркеров или другие проблемы с расписанием подов, проверьте журналы и при необходимости вносите изменения в конфигурации.
Полезные ссылки
- https://github.com/kubernetes-sigs/kubespray
- Справочник по Docker
- Справочник по Kubernetes
- Установка Portainer на Linux
- Справочник по параметрам командной строки MinIO
- [Справочник по Bash](https://www.glukhov.org/ru/post/2024/04/bash-cheat-sheet/