Установка и базовая настройка k3s на Ubuntu Server

Обновлено и опубликовано Опубликовано:

Используемые термины: KubernetesUbuntu.

k3s представляет из себя легковесный одноузловой кластер Kubernetes. Сценарии его использования:

  • Познакомиться и набить руку для работы с Kubernetes без развертывания дорогого кластера.
  • Настроить инфраструктуру заранее, чтобы проще было сделать перенос в продуктивную среду.
  • Развертывание тестовой среды для разработки приложения.
  • Замена более простой оркестрации на базе docker-compose.

Мы рассмотрим команды на примере Linux Ubuntu. В инструкции не будут рассмотрены примеры по написанию манифестов и запуску проектов — только установка платформы оркестрации.

Предварительная настройка системы

Выполним минимальный набор действия для более оптимальной работы k3s.

Создаем файл:

vi /etc/sysctl.d/99-k3s-performance.conf

# Увеличение лимита открытых файлов
fs.file-max = 1200000

# Оптимизация работы с виртуальной памятью
vm.overcommit_memory = 1
vm.panic_on_oom = 0

# Увеличение лимитов на отслеживание сетевых соединений
net.core.somaxconn = 32768
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_max_syn_backlog = 16384

Применяем настройки:

sysctl --system

Можно переходить к установке облегченного кубернетеса.

Установка и запуск

Развертывание k3s, без преувеличения, выполняется одной командой:

curl -sfL https://get.k3s.io | sh -

Как правило, установка и конфигурирование завершается в течение одной минуты. 

Посмотреть список нод можно командой:

kubectl get node

Чаще всего, для своего удобства, администраторы kubernetes делают алиас:

echo 'alias k=kubectl' >> ~/.bashrc

source ~/.bashrc

С его помощью вместо команды kubectl можно будет вводить просто k.

Кластер готов к работе.

Let's Encrypt

По умолчанию, в качестве ingress контроллера в k3s используется traefik. Для того, чтобы он мог получать бесплатные сертификаты от Let's Encrypt нужна его донастройка.

Откроем файл:

vi /var/lib/rancher/k3s/server/manifests/traefik.yaml

Между директивами valuesContent и deployment вставляем:

    global.systemDefaultRegistry: ""
  valuesContent: |-
    additionalArguments:
      - "--certificatesresolvers.default.acme.email=postmaster@dmosk.local"
      - "--certificatesresolvers.default.acme.storage=/data/acme.json"
      - "--certificatesresolvers.default.acme.httpchallenge.entrypoint=web"
    ports:
      web:
        exposedPort: 80
      websecure:
        exposedPort: 443

    deployment:
      podAnnotations:

* обратите внимание, что в параметре email необходимо заменить postmaster@dmosk.local на свое значение.

Теперь traefik сможет получать сертификат.

Установка и настройка Helm

Для работы с менеджером пакетов helm необходимо его установить и настроить для подключения к нашему k3s.

Установка

По сути, для этого нужно просто скачать бинарный файл.

Для начала узнаем последнюю версию приложения и сохраним ее в переменную HELM_VER:

HELM_VER=$(curl -s https://api.github.com/repos/helm/helm/releases/latest | grep 'tag_name' | cut -d\" -f4)

Скачаем архив с бинарным файлом:

wget https://get.helm.sh/helm-${HELM_VER}-linux-amd64.tar.gz

Распакуем его:

tar -zxf helm-${HELM_VER}-linux-amd64.tar.gz

И переместим в каталог usr/local/bin:

mv linux-amd64/helm /usr/local/bin/

Скачанный архив и распакованную папку можно удалить:

rm -rf helm-${HELM_VER}-linux-amd64.tar.gz linux-amd64

Проверить, что shell оболочка видит helm можно командой:

helm version

Настройка подключения

Утилите helm нужно правильное значение переменной KUBECONFIG. По умолчанию, helm ищет конфигурацию для подключения в домашней директории пользователя, каталоге .kube. Однако, k3s хранит конфигурацию в другом месте.

В bashrc добавим строку и сразу примени настройку для текущей сессиии:

echo 'export KUBECONFIG=/etc/rancher/k3s/k3s.yaml' >> ~/.bashrc

source ~/.bashrc

* мы указали в качестве значения для переменной KUBECONFIG путь до файла /etc/rancher/k3s/k3s.yaml.

Попробуйте ввести команду:

helm list

Система должна вернуть либо список установленных пакетов, либо пустой вывод. Ошибок быть не должно.

Наш helm готов для работы с k3s.

# DevOps # Ubuntu # Контейнеризация # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет

Дмитрий Моск
— IT-специалист.
Настройка серверов, услуги DevOps.

Заказать настройку контейнеризации

Нужна бесплатная консультация?

Мини-инструкции

Как установить и настроить K3S для корректной работы на Linux Ubuntu

Использование приложения Barman для резервного копирования СУБД PostgreSQL

Шпаргалка для docker healthcheck

Как получить бесплатный VDS-сервер в SpaceWeb

Как установить и работать с различными LLM моделями через Ollama на Linux

Как установить и настроить SambaDC (Active Directory) на Linux Ubuntu

Как установить систему для удаленного управления устройствами MeshCentral на Linux

Другие инструкции

Все статьи

Нужна помощь? Пишите:






Реклама