Хабрахабр

KubeSail и его бесплатный Kubernetes-кластер для разработчиков

Для её достижения они предложили K8s-кластер в виде управляемой услуги (managed service), в рамках которой имеется бесплатный тарифный план. В начале года появился новый веб-сервис KubeSail, созданный двумя американскими Kubernetes-энтузиастами, задавшимися целью «сделать преимущества Kubernetes более доступными для всех разработчиков».

Дабы нивелировать этот недостаток, они и предлагают простой в работе сервис, бесплатная версия которого должна быть «полезна для изучения Kubernetes или хобби-проектов, которые не стоят затрат в 140 USD/месяц, как в [Amazon] EKS». Авторы KubeSail, утверждая, что Kubernetes уже стал стандартом для построения инфраструктуры, признают высокий порог вхождения, что «вызывает сомнения насчёт того, окупят ли преимущества этой технологии затраты [на обучение и старт]».

Текущие тарифные планы KubeSail таковы:

… а цены с гибкими ограничениями по CPU/памяти и хранилищам обещают в скором времени.

Чем это лучше других вариантов?

Вот что сами разработчики (и не только они) говорят, отвечая на вопросы читателей Reddit об отличиях их предложения от того, что уже есть.

В сравнении с локальным запуском Minikube:

У вас должна быть возможность уронить один узел и не страдать от неработающих функций. «Более одного master-узла, что позволяет работать с настоящей высокодоступной конфигурацией. У minikube, уверен, возможен только один master со множеством worker'ов».

Это не только классно для обучения, но ещё и действительно высокодоступный K8s-кластер, который не выключится, когда будет закрыта крышка ноутбука». «… вы также можете запускать production-инсталляции в кластере и делать их доступными в интернете.

В сравнении с другими поставщиками managed Kubernetes (в качестве примеров приведены GKE и Digital Ocean):

выше], однако должен сказать, что мы поддерживаем HA-конфигурации на бесплатном тарифе (вы можете запустить три маленьких pod'а на трёх узлах) и используем очень мощные машины с быстрыми SSD-дисками и сетевыми подключениями, поэтому готов сделать ставку, что pod на KubeSail будет быстрее 2-гигабайтного instance в DO! «DO действительно дешевле AWS [сравнение с EKS которого см. Хотя конкурировать с DO будет действительно непросто, поэтому мы собираемся сосредоточиться на вопросах обучения и пользовательского интерфейса/утилит».

Больше, чем managed K8s

Хотя сервис преимущественно ориентирован на разработчиков, он может пригодиться и DevOps-инженерам. Помимо собственно простого веб-интерфейса (подробности о нём последуют ниже), авторы обещают выпустить инструменты для разработки под Kubernetes и руководства, которые упростят деплой и запуск приложений в кластерах. «Первой ласточкой» здесь стала утилита deploy-to-kube, предназначенная для развёртывания Node.js-приложений в Kubernetes одной командой (и даже без необходимости создавать для этого конфиг — все необходимые данные запрашиваются в интерактивном режиме):

image

Но вернёмся к собственно управляемому K8s-кластеру, что нам предлагает KubeSail.

Работа с KubeSail

Веб-интерфейс сервиса служит цели проекта: очень прост и позволяет буквально в несколько кликов получить кластер в своё распоряжение.

выкатить первые deployments в созданный Kubernetes-кластер: После входа через GitHub-аккаунт веб-интерфейс предлагает сразу же приступить к делу, т.е.

Это сервис, отдающий случайную цитату в формате JSON. Выберем для этого один из готовых примеров — QUOTE-OF-THE-MONTH. Деплой проходит быстро (<10 секунд):

Проверим результат, обратившись к доступному извне endpoint:

$ curl https://qotm-2d7ab6efca.kubesail.io/
{ "hostname": "qotm-5d9f776595-6qfmv", "ok": true, "quote": "A small mercy is nothing at all?", "time": "2019-02-21T02:54:15Z", "version": "2.0"
}

Работает! А вот как выглядит интерфейс к уже выкаченным в кластер deployments:

Как видно, про каждый из них можно посмотреть базовые сведения: ограничения по ресурсам, проброшенные порты, вывод логов (данные из kubectl logs).

Если перейти по ссылке ACCOUNT (в правом верхнем углу интерфейса), то можно выкатить дополнительный deployment из готовых примеров (а их сейчас всего два: уже упомянутый сервис цитат и nginx) или же забрать готовый конфиг (~/.kube/config) для возможности работать с кластером через привычный kubectl:

Для полноты экспериментов воспользуемся этим конфигом и развернём свой deployment — например, из документации Kubernetes:

$ kubectl create -f https://k8s.io/examples/controllers/nginx-deployment.yaml
deployment.apps/nginx-deployment created
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 1/1 1 1 4h14m
nginx-deployment 0/3 0 0 64s
qotm 1/1 1 1 4h17m

Развернуть получилось, но что-то пошло не так? Интерфейс KubeSail рад помочь:

Проблема уйдёт, если привести deployment, например, к такому виду (см. Вот оно что — всё дело в ограниченных ресурсах. последние строки — блок resources):

apiVersion: apps/v1
kind: Deployment
metadata: name: nginx-deployment labels: app: nginx
spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.7.9 ports: - containerPort: 80 resources: limits: cpu: "100m" memory: "20Mi" requests: cpu: "10m" memory: "10Mi"

… однако искусственность такого «исправления» этой проблемы быстро даст о себе знать:

Правда, после этого ресурсов снова перестало хватать… Впрочем, оставлю такие «игры» за рамками эксперимента: его суть всё же сводилась к проверке взаимодействия с кластером через kubectl — и с этим, как видим, всё действительно в порядке. Обратите внимание на «1/3» в правом верхнем углу — она символизирует запуск одной из реплик.

Официальный текущий статус KubeSail — бета-версия, и авторы очень ждут обратной связи от любых пользователей их сервиса: и разработчиков, и DevOps-инженеров.

Альтернативы

Напоследок, напомню, что существуют и другие бесплатные сервисы для экспериментов с Kubernetes и его изучения онлайн. Про один из них — Play with Kubernetes, использующий технологию Docker-in-Docker (DIND) и предлагающий консоль в браузере, — мы уже писали обзор.

Кроме него, в Katacoda создали весьма схожий Kubernetes Playground.

А в документации Kubernetes можно найти большие списки как для локальных способов установки/использования Kubernetes, так и для hosted-решений, разнообразие которых на сегодняшний день значительно превышает знакомые всем варианты от Amazon, Azure, Digital Ocean и Google (кстати, KubeSail уже тоже внесли в этот список).

P.S.

Читайте также в нашем блоге:

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»