Опубликовано 11 июн 2018Обновлено 11 авг 2025 12:05

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

kubernetes
kubernetes
News Title Block Picture
Содержание
Содержание
Поделиться

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

Другие новости

Продолжая использовать сайт k2.cloud, Вы соглашаетесь на обработку персональных данных, собираемых с использованием файлов cookie, а также посредством метрических программ «Яндекс Метрика», «ВК Реклама». Более подробная информация – в политике обработки и использования cookie-файлов.