
Установить Kubernetes можно множеством различных способов. Какие-то из-них уже были описаны на этом сайте. В этой статье будет показан еще один способ выполнить установку примерно за 15 минут при помощи Kubespray.
Все остальное мы сделаем вместе далее.
Для того, чтобы развернуть кластер 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
Первые три строки описывают параметры подключения к серверам:
Деплой Kubernetes кластера при помощи Kubespray выполняется простой командой:
$ ansible-playbook -u ec2-user -b -i inventory/inventory.cfg cluster.yml
Где
Процесс деплоя кластера Kubernetes в данной конфигурации займет примерно 15 минут.
Для проверки работоспособности кластера 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 и протестировали его работоспособность. Далее можно переходить к экспериментам или пытаться развернуть более сложную конфигурацию кластера (например, работающую в режиме отказоустойчивости мастеров). При наличии запросов, я обязательно сделаю на эту тему отдельную статью и видео-инструкцию.