Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

Как установить Kubernetes на Ubuntu с помощью K3s

Хотите установить 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?».

Установка Kubernetes на Ubuntu с помощью K3s

Предварительные требования

Перед началом вам понадобятся:

  • Сервер под управлением Ubuntu 24.04 LTS.
  • Доступ по SSH с правами sudo.
  • Не менее 2 ядер процессора и 2 ГБ оперативной памяти.
  • Желательно 4 ГБ оперативной памяти или больше для комфортного обучения.
  • Достаточно места на SSD и доступ к интернету для скачивания образов контейнеров.

Согласно официальным требованиям K3s, для серверного узла необходимы как минимум 2 ядра процессора и 2 ГБ оперативной памяти. Для запуска приложений может потребоваться больше ресурсов.

Нужен VPS с Ubuntu для Kubernetes?
Разверните K3s с root-доступом и гибким выбором ресурсов сервера.
Посмотреть VPS с Ubuntu →

Примечание по безопасности: Сохраните доступ по 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.

Что делать дальше?

Одноузловой кластер подходит для изучения возможностей Kubernetes, но сам по себе он не является готовой к работе в реальных условиях средой с высокой доступностью.

Прежде чем развёртывать критически важные для бизнеса приложения, продумайте:

  • Управление доступом к кластеру и обновление системы безопасности.
  • Постоянное хранилище данных и процедуры резервного копирования.
  • Мониторинг и ограничения ресурсов.
  • Безопасный доступ к приложению через HTTPS.
  • Восстановление после сбоя узла или сервера.

Помните, что одноузловой кластер по-прежнему зависит от одной физической или виртуальной машины. Kubernetes не может устранить эту единую точку отказа.

Часто задаваемые вопросы

K3s — это то же самое, что Kubernetes?

K3s — сертифицированный дистрибутив Kubernetes. Он реализует функциональность Kubernetes, упрощая установку и снижая затраты на эксплуатацию.

Можно ли установить Kubernetes на VPS?

Да. Вы можете запустить K3s на VPS с Linux, если у вас есть права администратора и достаточно процессорных ресурсов, оперативной памяти и места для хранения данных.

Подходит ли K3s для рабочих сред?

K3s можно использовать в рабочей среде, но надёжность зависит от архитектуры кластера, его ресурсов, сети, безопасности и настройки резервного копирования.

Можно ли удалить K3s позже?

Да. K3s предоставляет скрипт для удаления, но его запуск может привести к удалению ресурсов кластера и локальных данных приложений. Перед удалением создайте резервные копии важных данных.

Заключение

Теперь вы знаете, как установить Kubernetes на Ubuntu с помощью K3s, проверить одноузловой кластер и развернуть приложение Nginx.

С помощью K3s вы создали работающий одноузловой кластер Kubernetes, развернули Nginx, настроили доступ к нему через сервис и проверили приложение с помощью перенаправления портов.

По мере накопления опыта вы сможете изучить развёртывания, масштабирование, настройку и управление кластером.

Table of Content

Обратный прокси Nginx принимает запросы от посетителей сайта и перенаправляет их на другой сервер или

Ошибка 502 Bad Gateway в Nginx обычно означает, что Nginx не смог получить корректный ответ

Ошибка 504 Gateway Timeout возникает, когда сервер, выполняющий роль шлюза или прокси, не получает вовремя

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

Прокрутить вверх