KubeSphere — Строим свой Managed Kubernetes

KubeSphere8
KubeSphere7
KubeSphere5
KubeSphere9
KubeSphere4
KubeSphere6
previous arrow
next arrow
KubeSphere8
KubeSphere7
KubeSphere5
KubeSphere9
KubeSphere4
KubeSphere6
previous arrow
next arrow

Что если нет возможности или средств на облачный 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