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

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

1176
7 минут

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

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

  • Один или несколько физических или виртуальных серверов, запущенных в любом облаке (AWS, GCP, Azure, OpenStack или, например, в K2 CLOUD).
  • Установленный 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
Семь трендов на рынке облачных услуг в 2023 году
До 2022 года на рынке облаков в России главенствовали мировые тренды, но сейчас наша страна пошла своим путем. О том, для чего сейчас компании используют облачные технологии и как меняется рынок, рассказал директор бизнес-юнита K2 Cloud Сергей Зинкевич.
1 минута
1021
29 марта 2023
Сетевые балансировщики нагрузки и другие обновления К2 Облака

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

2 минуты
320
12 января 2023
Российский Kubernetes, какой он? Знакомьтесь, платформа Deckhouse

Если бизнес работает в цифре, строит свои решения на базе микросервисной архитектуры и контейнеров и до последнего времени использовал для этого западную платформу контейнеризации, то актуальная задача сегодня — найти ей адекватную замену.

2 минуты
1568
26 декабря 2022
Что выгоднее — использовать готовую платформу для управления контейнерами или разрабатывать своими силами?
Совсем недавно мы провели опрос среди ИТ-руководителей, чтобы выяснить, насколько они знакомы с технологией Kubernetes и используют ли ее в ИТ-инфраструктуре своей компании, личных проектах и т.д. Результаты показали, что 63% опрошенных уже работает с Kubernetes прямо сейчас, 23% пока не дошли и 14% участников планируют в ближайшее время.
1 минута
551
4 декабря 2020
Дайджест обновлений К2 Облака осень 2020 г.
За осень в К2 Облаке многое изменилось. Мы активно писали код и не успевали сообщать обо всех переменах. Постараемся исправиться и информировать вас ASAP, чтобы вы могли сразу же использовать новые фичи.
1 минута
299
scrollup