September 06, 2026 · by Alex M.
Оркестрация контейнеров стала обязательным навыком для любого современного системного администратора. Kubernetes — это отраслевой стандарт, однако его классическая установка может быть перегруженной для одного VPS. Именно здесь на помощь приходит K3s — лёгкий дистрибутив Kubernetes, сертифицированный CNCF, идеально подходящий для продакшн-сред с ограниченными ресурсами.
В этом руководстве вы узнаете, как установить и настроить K3s на VPS NVMe или VPS SSD, с нуля до первого рабочего деплоя.
K3s разработан Rancher Labs и упаковывает весь Kubernetes в один бинарный файл размером ~70 МБ. Он убирает редко используемые компоненты и заменяет etcd на SQLite (по умолчанию) или PostgreSQL/MySQL для больших кластеров.
Преимущества K3s перед классическим Kubernetes:
Если вам нужен более надёжный продакшн-кластер, рассмотрите управляемый выделенный сервер для гарантированных ресурсов и включённой технической поддержки.
Перед началом убедитесь, что у вас есть:
sudoПодключитесь к VPS и обновите пакеты:
sudo apt update && sudo apt upgrade -y
Установите необходимые утилиты:
sudo apt install -y curl wget git ufw
Активируйте UFW и настройте базовые правила:
sudo ufw allow ssh
sudo ufw allow 6443/tcp # K3s API server
sudo ufw allow 10250/tcp # Kubelet metrics
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable
Примечание: Если вы используете несколько узлов в кластере, добавьте также порт
8472/udpдля Flannel VXLAN.
Установка K3s выполняется одной командой curl:
curl -sfL https://get.k3s.io | sh -
Официальный скрипт загружает бинарный файл, создаёт systemd-сервис и автоматически запускает K3s. Проверьте статус:
sudo systemctl status k3s
Вы должны увидеть active (running). Проверьте также Kubernetes-узел:
sudo kubectl get nodes
Ожидаемый вывод:
NAME STATUS ROLES AGE VERSION
vps-demo Ready control-plane,master 2m v1.29.4+k3s1
По умолчанию файл kubeconfig находится по пути /etc/rancher/k3s/k3s.yaml. Скопируйте его в домашний каталог, чтобы запускать kubectl без sudo:
mkdir -p ~/.kube
sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
sudo chown $(id -u):$(id -g) ~/.kube/config
export KUBECONFIG=~/.kube/config
Добавьте экспорт в ~/.bashrc для постоянного эффекта:
echo 'export KUBECONFIG=~/.kube/config' >> ~/.bashrc
source ~/.bashrc
Проверьте:
kubectl cluster-info
Если у вас есть два VPS (например, VPS NVMe для мастера и VPS SSD для воркера), вы можете расширить кластер.
На мастер-узле получите токен для подключения:
sudo cat /var/lib/rancher/k3s/server/node-token
На рабочем узле выполните:
curl -sfL https://get.k3s.io | K3S_URL=https://<IP_MASTER>:6443 K3S_TOKEN=<TOKEN> sh -
Проверьте на мастере, что новый узел появился:
kubectl get nodes
Давайте задеплоим простое приложение Nginx для проверки кластера.
kubectl create deployment nginx-demo --image=nginx:stable --replicas=2
kubectl expose deployment nginx-demo --port=80 --type=NodePort
kubectl get pods
kubectl get services
Пример вывода:
NAME READY STATUS RESTARTS AGE
nginx-demo-7d6f8b9c5-4xkpz 1/1 Running 0 30s
nginx-demo-7d6f8b9c5-9qlmn 1/1 Running 0 30s
Узнайте назначенный порт NodePort (например, 32456) и откройте http://<IP_VPS>:32456 в браузере.
Helm значительно упрощает установку сложных приложений (cert-manager, Ingress и др.):
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Проверьте:
helm version
Добавьте официальный stable репозиторий:
helm repo add stable https://charts.helm.sh/stable
helm repo update
K3s поставляется с предустановленным Traefik в качестве Ingress Controller. Проверьте:
kubectl get pods -n kube-system | grep traefik
Для экспозиции веб-приложения с собственным доменом создайте файл ingress-demo.yaml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: web
spec:
rules:
- host: demo.vashдomен.md
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-demo
port:
number: 80
Применить:
kubectl apply -f ingress-demo.yaml
Для автоматического TLS через Let's Encrypt установите cert-manager через Helm:
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--set installCRDs=true
Эта настройка отлично работает в паре с действующим SSL-сертификатом для вашего домена.
Установите Kubernetes Dashboard:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml
Создайте ServiceAccount для доступа:
kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
kubectl create clusterrolebinding dashboard-admin \
--clusterrole=cluster-admin \
--serviceaccount=kubernetes-dashboard:dashboard-admin
Получите токен доступа:
kubectl -n kubernetes-dashboard create token dashboard-admin
# Состояние всех подов
kubectl get pods --all-namespaces
# Использование ресурсов (требуется metrics-server)
kubectl top nodes
kubectl top pods
# Логи пода
kubectl logs <имя-пода>
# Детальное описание
kubectl describe pod <имя-пода>
K3s включает Local Path Provisioner по умолчанию — идеально для персистентных томов на одном узле.
Создайте PersistentVolumeClaim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: demo-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 5Gi
kubectl apply -f pvc-demo.yaml
kubectl get pvc
Безопасность Kubernetes-кластера не менее важна, чем безопасность самого сервера. Основные меры:
curl -sfL https://get.k3s.io | sh - обновляет автоматическиЕсли вам нужна помощь в обеспечении безопасности вашей инфраструктуры, услуги по управлению серверами от CLIQHOST готовы взять эту ответственность на себя.
K3s можно обновить, повторно запустив скрипт установки:
curl -sfL https://get.k3s.io | sh -
Для полного удаления K3s с мастер-узла:
/usr/local/bin/k3s-uninstall.sh
Для рабочих узлов:
/usr/local/bin/k3s-agent-uninstall.sh
K3s делает Kubernetes доступным даже на скромной инфраструктуре. Следуя шагам этого руководства, вы установили рабочий кластер, задеплоили первое приложение, настроили Ingress с Traefik и заложили основу безопасного и масштабируемого продакшн-окружения.
Для стабильного кластера K3s рекомендуем VPS NVMe от CLIQHOST — со сверхбыстрым хранилищем, гарантированным аптаймом и поддержкой 24/7. По мере роста проекта вы всегда можете перейти на выделенный сервер или воспользоваться нашими услугами управления серверами.
👉 Есть вопросы или хотите обсудить подходящую конфигурацию для вашего проекта? Свяжитесь с командой CLIQHOST — мы готовы помочь.
Реальные отзывы клиентов, которые доверяют CLIQHOST за производительность, надёжность и профессиональную техническую поддержку.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."