Запросить демо
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Предпочтительный способ связи
Оставить заявку
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Узнать стоимость
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Предпочтительный способ связи
Попробовать бесплатно
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Предпочтительный способ связи
Регистрация в консоли
Я подтверждаю свое согласие на обработку компанией КРОК моих персональных данных, указанных в форме, в целях и пределах, установленных законодательством РФ о персональных данных в рамках проводимых мероприятий в течение неопределенного срока
Предпочтительный способ связи
Быть в теме

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

11.06.2018 5 минут 2475

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

Сервисы упоминаемые в статье

  1. Публичное облако КРОК

Не пропустите самые важные, интересные и полезные статьи недели

Ваш e-mail успешно подписан.

Смотрите также