Хотите установить Kubernetes на Ubuntu, не настраивая сложный кластер с нуля? K3s — облегчённый дистрибутив Kubernetes, который упрощает установку. Это практичный выбор для разработчиков, изучающих Kubernetes на VPS.
В этом руководстве вы узнаете, как установить Kubernetes на Ubuntu 24.04 с помощью K3s, создать одноузловой кластер, развернуть приложение Nginx и проверить его работу.
Вам не потребуется устанавливать Docker или отдельно настраивать среду выполнения контейнеров.
Что такое K3s и зачем его использовать?
K3s — облегчённый дистрибутив Kubernetes, сертифицированный CNCF и предназначенный для упрощения установки и эксплуатации Kubernetes.
Он включает необходимые компоненты, в том числе среду выполнения контейнеров и средства организации сетевого взаимодействия в кластере, и упрощает их установку.
В отличие от традиционной установки Kubernetes с помощью kubeadm, K3s автоматически выполняет значительную часть первоначальной настройки.
Установка K3s на одном узле создаёт полноценный кластер Kubernetes, подходящий для разработки, тестирования и обучения.
Если вы не знакомы с такими понятиями Kubernetes, как поды и развёртывания, сначала прочитайте наше руководство «Что такое Kubernetes?».

Предварительные требования
Перед началом вам понадобятся:
- Сервер под управлением Ubuntu 24.04 LTS.
- Доступ по SSH с правами sudo.
- Не менее 2 ядер процессора и 2 ГБ оперативной памяти.
- Желательно 4 ГБ оперативной памяти или больше для комфортного обучения.
- Достаточно места на SSD и доступ к интернету для скачивания образов контейнеров.
Согласно официальным требованиям K3s, для серверного узла необходимы как минимум 2 ядра процессора и 2 ГБ оперативной памяти. Для запуска приложений может потребоваться больше ресурсов.
Примечание по безопасности: Сохраните доступ по SSH и ограничьте доступ к API Kubernetes через порт 6443. Для выполнения этого руководства открывать порт для публичного доступа не требуется. Если вы используете UFW или другой межсетевой экран, перед установкой ознакомьтесь с официальными сетевыми требованиями K3s.
Шаг 1. Обновите сервер Ubuntu
Подключитесь к серверу Ubuntu по SSH и обновите сведения о пакетах:
sudo apt update
sudo apt upgrade -y
Проверьте версию Ubuntu:
lsb_release -a
Вы должны увидеть Ubuntu 24.04 LTS.
Если после обновления системы требуется перезагрузка, перезагрузите сервер и снова подключитесь по SSH.
K3s установит собственную среду выполнения контейнеров, поэтому Docker Engine не требуется.
Шаг 2. Установите Kubernetes на Ubuntu с помощью K3s
K3s предоставляет официальный скрипт установки.
Стандартная команда установки:
curl -sfL https://get.k3s.io | sh -
Эта команда скачивает и запускает установщик K3s. Прежде чем запускать его, особенно на рабочем сервере, ознакомьтесь с официальной инструкцией по установке и изучите скрипт установщика.
В ходе установки K3s настраивается как служба systemd и устанавливаются утилиты управления Kubernetes.
После завершения установки проверьте состояние службы:
sudo systemctl status k3s
Найдите в выводе:
Active: active (running)
Нажмите q, чтобы выйти из просмотра состояния.
Если служба работает, установка Kubernetes прошла успешно и кластер запустился.
Шаг 3. Проверьте кластер Kubernetes
K3s включает собственную утилиту командной строки kubectl для управления ресурсами Kubernetes.
Выполните:
sudo k3s kubectl get nodes
После инициализации кластера вы увидите примерно такой вывод:
NAME STATUS ROLES AGE VERSION
ubuntu-vps Ready control-plane,master 2m v1.xx.x+k3s1
Имя вашего хоста и версия Kubernetes будут отличаться.
Важен статус Ready: он означает, что Kubernetes считает узел готовым к запуску приложений.
Затем проверьте системные поды:
sudo k3s kubectl get pods -A
Команда выведет список подов во всех пространствах имён, включая системные службы Kubernetes.
Инициализация некоторых компонентов может занять немного времени. Если они ещё запускаются, проверьте их состояние позже.
Теперь, когда вы установили Kubernetes на Ubuntu с помощью K3s, кластер готов к запуску контейнерных приложений. Развернём Nginx, чтобы убедиться, что всё работает.
Шаг 4. Разверните первое приложение
Теперь, когда кластер работает, развернём простой веб-сервер Nginx.
Создайте развёртывание:
sudo k3s kubectl create deployment demo-nginx --image=nginx:stable
Kubernetes создаст развёртывание, которое управляет контейнером Nginx.
Проверьте ход развёртывания:
sudo k3s kubectl get deployments
Дождитесь, пока развёртывание покажет одну доступную реплику.
Вы также можете проверить его под:
sudo k3s kubectl get pods
Через некоторое время под должен перейти в состояние Running, а его контейнер — стать готовым к работе.
Если вы видите статус ContainerCreating, возможно, образ контейнера ещё скачивается.
Шаг 5. Создайте сервис Kubernetes
Сервис Kubernetes предоставляет стабильную сетевую точку доступа к приложению, даже если его поды заменяются.
Настройте доступ к развёртыванию Nginx внутри кластера:
sudo k3s kubectl expose deployment demo-nginx --type=ClusterIP --port=80
Проверьте сервис:
sudo k3s kubectl get services
Вы должны увидеть сервис с именем demo-nginx, адресом ClusterIP и портом 80.
Тип ClusterIP делает приложение доступным внутри кластера Kubernetes. Он не открывает прямой доступ к Nginx из интернета.
Шаг 6. Проверьте приложение Nginx
Для проверки приложения используем перенаправление портов Kubernetes, не настраивая публичный балансировщик нагрузки.
Выполните:
sudo k3s kubectl port-forward service/demo-nginx 8080:80
Оставьте этот сеанс SSH открытым.
Команда перенаправляет порт 8080 интерфейса обратной связи сервера на порт 80 сервиса Nginx.
Откройте второе SSH-подключение к тому же серверу и выполните:
curl http://127.0.0.1:8080
В ответ вы должны получить HTML-код стандартной страницы приветствия Nginx.
Готово! Вы установили Kubernetes на Ubuntu с помощью K3s, развернули контейнерное приложение и получили доступ к нему через сервис Kubernetes.
Нажмите Ctrl+C в первом сеансе, чтобы остановить перенаправление портов.
Эта проверка подтверждает только локальный доступ. Чтобы открыть публичный доступ к приложению, потребуется дополнительно настроить сеть, DNS, TLS и безопасность.
Распространённые проблемы при установке K3s
Служба K3s не запускается
Проверьте журналы службы:
sudo journalctl -u k3s -n 50
Ищите сообщения о проблемах с правами доступа и сетью, а также о сбоях компонентов.
Узел Kubernetes имеет статус NotReady
Проверьте сведения об узле:
sudo k3s kubectl describe node
Изучите указанные состояния, использование системных ресурсов и сетевые настройки.
Под Nginx не запускается
Проверьте под:
sudo k3s kubectl get pods
Затем просмотрите события развёртывания:
sudo k3s kubectl describe deployment demo-nginx
Запуску подов могут мешать ошибки скачивания образов, нехватка ресурсов или проблемы с сетью кластера.
Перенаправление портов не работает
Убедитесь, что под Nginx готов к работе и сервис существует.
Помните: пока вы проверяете приложение из второго сеанса SSH, команда перенаправления портов должна продолжать работать.
Нужен ли Docker для работы K3s?
Нет. K3s включает containerd — среду выполнения контейнеров, используемую для запуска приложений в Kubernetes.
Вы можете развёртывать совместимые образы контейнеров, в том числе созданные с помощью Docker, не устанавливая Docker Engine на сервер K3s.
Если вы только знакомитесь с контейнеризацией, наше руководство по Docker для начинающих объяснит, как работают контейнеры и образы.
Что делать дальше?
Одноузловой кластер подходит для изучения возможностей Kubernetes, но сам по себе он не является готовой к работе в реальных условиях средой с высокой доступностью.
Прежде чем развёртывать критически важные для бизнеса приложения, продумайте:
- Управление доступом к кластеру и обновление системы безопасности.
- Постоянное хранилище данных и процедуры резервного копирования.
- Мониторинг и ограничения ресурсов.
- Безопасный доступ к приложению через HTTPS.
- Восстановление после сбоя узла или сервера.
Помните, что одноузловой кластер по-прежнему зависит от одной физической или виртуальной машины. Kubernetes не может устранить эту единую точку отказа.
Часто задаваемые вопросы
K3s — сертифицированный дистрибутив Kubernetes. Он реализует функциональность Kubernetes, упрощая установку и снижая затраты на эксплуатацию.
Да. Вы можете запустить K3s на VPS с Linux, если у вас есть права администратора и достаточно процессорных ресурсов, оперативной памяти и места для хранения данных.
K3s можно использовать в рабочей среде, но надёжность зависит от архитектуры кластера, его ресурсов, сети, безопасности и настройки резервного копирования.
Да. K3s предоставляет скрипт для удаления, но его запуск может привести к удалению ресурсов кластера и локальных данных приложений. Перед удалением создайте резервные копии важных данных.
Заключение
Теперь вы знаете, как установить Kubernetes на Ubuntu с помощью K3s, проверить одноузловой кластер и развернуть приложение Nginx.
С помощью K3s вы создали работающий одноузловой кластер Kubernetes, развернули Nginx, настроили доступ к нему через сервис и проверили приложение с помощью перенаправления портов.
По мере накопления опыта вы сможете изучить развёртывания, масштабирование, настройку и управление кластером.