Установка K3s
Задача: установить k3s на одну виртульальную машину с возможностью удаленного доступа.
Для достижения цели нужно:
- сформировать команду для установки k3s.
По-умолчанию команда выглядит следующим образом:
curl -sfL https://get.k3s.io | sh -
Вместе с кластером будут установлены Flannel
и Traefik
. Если первая нужно для работы с сетью, то Traefik есть смысл установить самостоятельно с всеми необходимыми зависимостями. Команда будет выглядеть по-другому:
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik" sh -
Для того чтобы использовать удаленнй доступ по IP или DNS адресу, нужно добавить --tls-san <REAL_IP/OR/HOSTNAME>
Для конфигурации режима DualStack, нужно добавить: --cluster-cidr=10.42.0.0/16,2001:cafe:42::/56 --service-cidr=10.43.0.0/16,2001:cafe:43::/112 --kubelet-arg=node-ip=:: --flannel-ipv6-masq
Полная комада, для утановки k3s с отключенным Traefik, удаленным доступом по IP и настроенным IPv6 выглядит так:
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable=traefik --cluster-cidr=10.42.0.0/16,2001:cafe:42::/56 --service-cidr=10.43.0.0/16,2001:cafe:43::/112 --kubelet-arg=node-ip=:: --flannel-ipv6-masq --tls-san <REAL_IP/OR/HOSTNAME>" sh -
Важно: новая версия K3s оказалась не рабочей в следствии чего стенд перестал работать, на такой случай есть полезный ключ, который позволяет контролировать версию кластера:
INSTALL_K3S_VERSION="v1.29.5+k3s1"
Подключение к кластеру
Чтобы подключиться к кластеру на сервере с K3s нужно ввести команду:
cat /etc/rancher/k3s/config.yaml
Содержимое будет примерно такое:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUS...dFUUkoyZnJrZmlzZW4rNTh2c2MKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
server: https://127.0.0.1:6443
name: default
contexts:
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
user:
client-certificate-data: LS0tLS...1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
client-key-data: LS0tLS1CRUdJTiBFQyB...QgRUMgUFJJVkFURSBLRVktLS0tLQo=
Это содержимое нужно поместить в стандартный файл для утилиты kubeclt
~/.kube/config
изменив 127.0.0.1
на внешний IP или DNS сервера.
После проделанных действий удаленный доступ к кластеру начнёт работать.
Удаление/перенастройка
Для того чтобы удалить кластер или произвести его перенастройку нужно использовать следующую команду:
/usr/local/bin/k3s-uninstall.sh
Команда для проверки статуса:
systemctl status k3s
Важное замечание
У разных облачных провайдеров сформированная команда может вести себя по-разному. На AWS на Debian все работает хорошо, на DigitalOcean приходится использовать Ubuntu. Стоит учитывать этот момент при проектировании своих систем.