Что если нет возможности или средств на облачный Managed Kubernetes, а он очень нужен? Решение есть и имя ему KubeSphere.
Сайт — kubesphere.io
Ставить на проде single-node cluster не имеет никакого смысла, даже в качестве теста, поэтому попробуем сразу multi-node.
Создаем 3 виртуальные машины — один master и два slave. На всех нодах выполняем
sudo su
ssh-keygen -t rsa
Копируем открытый ключ мастера на 2 другие ноды
ssh-copy-id username@remote_host (здесь ваше имя пользователя и ip адреса 2 других хостов)
После проверяем на них, что ключи скопировались
cat /root/.ssh/authorized_keys
Проверяем коннект до хостов с мастера
ssh username@remote_host
На мастере устанавливаем зависимости (в документации указаны моменты когда все ставить необязательно, но мы ставим свежую версию, поэтому установим сразу все необходимое из таблицы Dependency requirements)
yum install curl socat conntrack ebtables ipset -y
Затем ставим KubeKey
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -
Делаем исполняемым
chmod +x kk
Далее создаем конфигурационный файл
./kk create config --with-kubesphere v3.3.2
После выполнения команды появится
Generate KubeKey config file successfully
Далее редактируем файл
nano config-sample.yaml
В документации приводятся различные варианты, я буду делать с доступом по ключам.
Правим эту часть под себя
spec:
hosts:
- {name: kubemaster, address: 192.168.6.244, internalAddress: 192.168.6.244, privateKeyPath: "~/.ssh/id_rsa"}
- {name: kubeslave1, address: 192.168.6.243, internalAddress: 192.168.6.243, privateKeyPath: "~/.ssh/id_rsa"}
- {name: kubeslave2, address: 192.168.6.242, internalAddress: 192.168.6.242, privateKeyPath: "~/.ssh/id_rsa"}
roleGroups:
etcd:
- kubemaster
control-plane:
- kubemaster
worker:
- kubeslave1
- kubeslave2
Если делаете в облаке, address у вас будет public cloud ip, а internal локальный облачный, в зависимости от настройки сети, аналогично с путем до ключей, у вас он может быть другим.
Мы делаем самый простой вариант запуска и не трогаем остальные настройки.
Далее создаем кластер
./kk create cluster -f config-sample.yaml
Если вдруг появится ошибка при подключении мастера к самому себе, проверьте ключ на мастере.
Быстро лечится через ssh-copy-id username@remote_host на нем.
Подтверждаем продолжением установки с помощью yes.
Ждем завершения установки (в зависимости от ресурсов и скорости интернета может быть долго).
После успешного завершения смотрим на данные в консоли.
Проходим по указанной ссылке вида http://ip-address:30880
Вводим логин и пароль
Account: admin
Password: P@88w0rd
При входе меняем пароль и проверяем Platform -> Cluster Management
Поздравляю. Теперь у вас есть ваш собственный Managed Kubernetes