Установка и базовая настройка 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 сможет получать сертификат.

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

Да            Нет

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

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

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

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

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

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

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

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

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

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

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

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

Все статьи

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






Реклама