Kubespray – Установка кластера Kubernetes в любом облаке за 15 минут
О технологиях

Kubespray – Установка кластера Kubernetes в любом облаке за 15 минут

13821
6 минут

Установить Kubernetes можно множеством различных способов. Какие-то из-них уже были описаны на этом сайте. В этой статье будет показан еще один способ выполнить установку примерно за 15 минут при помощи Kubespray.

Предварительные требования

  • Один или несколько физических или виртуальных серверов, запущенных в любом облаке (AWS, GCP, Azure, OpenStack или, например, в Облаке КРОК).
  • Установленный Python
  • Установленный Git
  • Все остальное мы сделаем вместе далее.

Подготовка к исталляции

Для того, чтобы развернуть кластер Kubernetes при помощи Kubespray, создайте отдельную рабочую директорию:


$ mkdir kubespray_demo

$ cd kubecspray_demo

Создайте внутри виртуальное окружение, установив в нем Ansible и netaddr:



$ virtualenv venv

$ source venv/bin/activate

 

$ pip install ansible

$ pip install netaddr

Далее склонируйте репозиторий kubespray:


$ git clone https://github.com/kubernetes-incubator/kubespray

Отредактируйте Ansible inventory файл согласно требованиям к вашему кластеру. В качестве примера можно использовать файл inventory/inventory.example.


$ cp inventory/inventory.example inventory/inventory.cfg

$ vim inventory/inventory.cfg

Для примера конфигурация из одного master сервера и двух вычислительных узлов будет выглядеть следующим образом:


master ansible_ssh_host=5.8.181.218  ip=192.168.1.4

node-1 ansible_ssh_host=5.8.181.35   ip=192.168.1.6

node-2 ansible_ssh_host=5.8.181.27   ip=192.168.1.5

 

[kube-master]

master

 

[etcd]

master

node-1

node-2

 

[kube-node]

node-1

node-2

 

[k8s-cluster:children]

kube-node

kube-master

Первые три строки описывают параметры подключения к серверам:

  • Имя сервера – задает имя на уровне конфигурации, не переименовывает сервер
  • ansible_ssh_host – внешний IP-адрес подключения к серверу
  • ip – внутренний IP-адрес сервера (необходимо указывать, когда серверы запущены в облаке в сети с приватной адресацией)
После того, как определен inventory файл, можно переходить к деплою кластера.

Деплой Kubernetes кластера

Деплой Kubernetes кластера при помощи Kubespray выполняется простой командой:


$ ansible-playbook -u ec2-user -b -i inventory/inventory.cfg cluster.yml

Где

  • u ec-user – имя пользователя для подключения к серверу по SSH
  • b – сказать Ansible, чтобы он использовал утилиту sudo при выполнении команд на удаленном сервере
  • i – указание расположения inventory файла

Процесс деплоя кластера Kubernetes в данной конфигурации займет примерно 15 минут.

Проверка работоспособности Kubernetes кластера

Для проверки работоспособности кластера Kubernetes, подключитесь к master-серверу и выполните следующие команды:


$ kubectl cluster-info

$ kubectl get nodes

$ kubectl get pods —all-namespaces

Вы должны увидеть статус кластера, все узлы и все запущенные pod-ы. Также для проверки работоспособности кластера можно запустить демо микросервисного приложения sock-shop:


$ kubectl create namespace sock-shop

$ kubectl apply -n sock-shop -f "https://raw.githubusercontent.com/microservices-demo/microservices-demo/master/deploy/kubernetes/com..."

Смотреть за запуском pod-ов удобно при помощи команды:


$ watch -n1 kubectl -n sock-shop get pods

Как только все pod-ы запустятся, можно попробовать подключиться к магазину при помощи Web-интерфейса. Данное приложение будет опубликовано на master сервере на порту, который выдаст команда (обычно 30001)


$ kubectl -n sock-shop get svc front-end

Для удаления демо-приложения необходимо всего лишь удалить его пространство имен. Все остальное Kubernetes сделает за вас


$ kubectl delete namespace sock-shop

Поздравляю, вы только что без особых временных затрат в полностью автоматическом режиме развернули собственный кластер Kubernetes и протестировали его работоспособность. Далее можно переходить к экспериментам или пытаться развернуть более сложную конфигурацию кластера (например, работающую в режиме отказоустойчивости мастеров). При наличии запросов, я обязательно сделаю на эту тему отдельную статью и видео-инструкцию.

Внедряем и поддерживаем Kubernetes/DevOps
Развертываем и сопровождаем инфраструктуру для бизнес-приложений на базе микросервисов и контейнеров
19 октября 2023
Контейнеры: технологии и процессы глазами разработчика

В выпуске#9 видеоподкаста «Откровенно об ИТ-инфраструктуре» поговорили о роли контейнеров в разработке. Приглашенные эксперты обсудили специфику использования Kubernetes и сокращение time-to-market в контексте контейнеризации.

В гостях Михаил Гудов, Orion soft, и Василий Колосов, Smartex.
1 минута
778
19 июня 2023
Семь трендов на рынке облачных услуг в 2023 году
До 2022 года на рынке облаков в России главенствовали мировые тренды, но сейчас наша страна пошла своим путем. О том, для чего сейчас компании используют облачные технологии и как меняется рынок, рассказал директор по развитию КРОК Облачные сервисы Сергей Зинкевич.
1 минута
2180
16 июня 2023
Рулевой в океане контейнеров
Выпуск#3 видеоподкаста «Откровенно об ИТ-инфраструктуре» посвящен Kubernetes и профессиональным платформам оркестрации контейнеров. Обсудили, как сегодня складывается ситуация на российском рынке контейнерных платформ, что востребовано и почему, особенности и перспективы работы с Kubernetes.

В гостях Александр Баталов, Генеральный директор Флант
1 минута
1503
29 марта 2023
Сетевые балансировщики нагрузки и другие обновления Облака КРОК

Мы рады вам представить новый сервис Облака КРОК для распределения трафика между экземплярами – Балансировщики нагрузки. Кроме того, мы автоматизировали обновление сертификатов Kubernetes и добавили возможность удаления рабочих узлов из кластера Kubernetes.

2 минуты
914
13 февраля 2023
Замена игрока: выбираем альтернативу зарубежному системному ПО (взгляд облачного провайдера)

На поле ИТ сегодня захватывающая интрига – выбор адекватной замены зарубежным системам, производители которых массово вышли из игры. На онлайн-митапе поделились опытом подбора, внедрения и сопровождения решений, способных заместить платформу виртуализации, почту, файловое хранилище, каталог пользователей, backup и др.

Предлагаем вашему вниманию запись и расшифровку митапа.

2 минуты
2169
scrollup