Kubernetes кластер за 25$ в год
Хочу предупредить что гайд ниже будет описывать кластер с одной ноды, дабы удешевить ваш энвайронмент. Этот кластер не рекомендуется использовать в production.
С чего начать?
Прежде всего вам нужен сервер. Если он у вас уже есть, то спокойно переходите к следующему разделу "Устанавливаем Kubernetes".
Я рекомендую недорогую и простую ноду от DigitalOcean которую вы можете создать в два клика и очень легко расширять ваш кластер новыми нодами при необходимости.
Также если вы воспользуетесь этой ссылкой для регистрации и пополните свой аккаунт на 25$ то бонусом вы получите еще +100$, а этого уже хватит на годовой кластер.
Теперь жмем Create → Droplets:
Далее нужно выбрать настройки вашего виртуального сервера. Я рекомендую использовать операционную систему Ubuntu 20.03 (LTS).
Далее выбираем план, для наших обучающих целей вполне сойдет Basic → 10$:
Ниже указываем доступ по паролю или же если вы уже работали с SSH и понимаете что такое SSH Key то выбираем ключ. Для простоты я выбрал пароль:
Далее кликаем Create Droplet.
Осталось дождаться когда ваш VPS сервер будет готов и далее копируем IP адрес и с помощью SSH и пароля который вы указали подключаемся к серверу.
ssh root@[IP_ADDRESS]
где IP_ADDRESS это ipv4 адрес:
Устанавливаем Kubernetes
Ну вот теперь у нас есть свой сервер, осталось выполнить несколько подготовительных операций и перейти к установке Kubernetes.
Давайте обновим наш сервер до последних обновлений:
apt update
Далее нам необходимо установить Snap утилиту для дальнейшей установки Kubernetes.
apt install snapd
Переходим к установки Kubernetes. Для простоты мы будем использовать MicroK8s.
snap install microk8s --classic
MicroK8s - это минимально производительный Kubernetes для разработки, который не требует настройки и изначально базируется на одной ноде.
Выполняем следующую команду чтобы видеть в каком статусе находится наш Kubernetes:
microk8s status --wait-ready
> microk8s **is running**
И последний шаг прежде чем приступить к работе с нашим Kubernetes это активация необходимых дополнений. Таким же способом вы можете активировать любое нужное вам дополнение предложенных тут.
microk8s enable dns ingress storage dashboard
Подключаемся к Kubernetes
На вашем сервере выполняем следующую команду и результат копируем и сохраняем на вашем компьютере локально в формате k8s.yml. Также нужно поменять server: https://127.0.0.1:16443
на ваш ipv4 server: https://164.90.161.0/:16443
.
microk8s kubectl config view --raw
> *Output:*
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CR....
server: https://164.90.161.0:16443
name: microk8s-cluster
contexts:
- context:
cluster: microk8s-cluster
user: admin
name: microk8s
current-context: microk8s
kind: Config
preferences: {}
users:
- name: admin
user:
token: ek04dmZKbkh2YVNPVT.....
Устанавливаем Kubectl локально на ваш компьютер, с его помощью мы будем взаимодействовать с наши кластером.
Готово! Используя kubectl мы можем локально взаимодействовать с нашим Kubernetes кластером состоящим с одной ноды.
kubectl get nodes
NAME STATUS AGE VERSION
ubuntu-s-1vcpu-2gb-fra1-01 Ready 61m v1.20.2
Также вы можете изучить как настроить авто-генерируемые SSL сертификаты LetEncrypt на вашем Kubernetes кластере.