Что установлено на вашем сервере k3s?
- k3s из стабильного канала официального установщика, текущей версии на момент установки
- Кластер из одного узла, API Kubernetes на порту 6443 и сертификат, в который входит ваш IP
- Ingress-контроллер Traefik на портах 80 и 443
- CoreDNS, local-storage и metrics-server, как они входят в состав k3s
- Собственная среда выполнения containerd от k3s, Docker не установлен
- Файл kubeconfig в /etc/rancher/k3s/k3s.yaml, доступный для чтения только root
- Брандмауэр с открытыми портами 22, 80, 443 и 6443, сети pod и service разрешены
Какой размер нужен для k3s?
В официальной документации k3s для узла server просят не менее 2 ядер CPU и 2 ГБ RAM, поэтому эта установка начинается с 2 ядер. k3s работает на 2 ГБ, но тогда остаётся мало места для ваших приложений. Ориентир такой: присмотритесь к 4 ГБ для нескольких небольших pod и к 8 ГБ для базы данных или большего числа сервисов. RAM и CPU увеличиваются в панели; сервер один раз перезапускается, а данные и IP остаются прежними. Постоянные тома остаются на том же диске.
| Применение | Размер | Цена | Выбрать |
|---|---|---|---|
| Стартовый | 2 GB RAM · 2 vCore · 40 GB NVMe | $4.51/мес. | |
| Средний | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/мес. | |
| Мощный | 8 GB RAM · 4 vCore · 120 GB NVMe | $13.62/мес. |
Кому подходит?
- Разработчикам, которые хотят изучать Kubernetes на собственном кластере
- Командам, которые выкладывают небольшое приложение через манифесты или Helm
- Конвейерам, которые развёртывают через kubectl
- Всем, кто хочет проверить локальные манифесты на настоящем сервере
Что будет после заказа?
- Задайте CPU не менее 2 ядер, выберите размер и оплатите заказ.
- Сервер запускается, и k3s устанавливается сам. На вкладке «Обзор» дождитесь, пока в строке «Приложение» появится «k3s готов».
- Заберите файл: scp root@IP:/etc/rancher/k3s/k3s.yaml ~/.kube/config. Это перезапишет существующий файл, поэтому сначала скопируйте его.
- В строке server этого файла замените 127.0.0.1 на IP-адрес своего сервера.
- Проверьте: kubectl get nodes. Узел должен показать Ready.
- Разверните своё приложение и откройте его на портах 80 и 443 через Ingress.
С каждым сервером
- Ежедневные бэкапы входят в цену
- Безлимитный трафик
- Полный root-доступ
- Позже можно увеличить или уменьшить RAM и CPU, а диск увеличить
- Расположение: Istanbul · IST-1.
Полезно знать
- k3s.yaml — это полный ключ доступа к кластеру, поэтому не передавайте его другим. Порт 6443 открыт для интернета, а доступ идёт по сертификату из этого файла; его можно ограничить своим IP через ufw.
- В кластере один узел, поэтому ваши приложения ненадолго останавливаются, пока сервер перезапускается.
- k3s обновляет сертификаты в admin kubeconfig при каждом запуске. Время от времени забирайте свою локальную копию заново, чтобы она не истекла.
- Установка не добавляет менеджер сертификатов. Для HTTPS на ваших Ingress сертификат вы определяете сами.
- Обновления сами не происходят. Официальный способ — заново запустить установщик с теми же параметрами, потому что пропущенные параметры теряются.
- Для второго узла нужны 8472/UDP и 10250/TCP. В официальной документации сказано, что 8472 не следует открывать в интернет, поэтому разрешите только IP-адрес того сервера.
k3s: вопросы и ответы
Что такое k3s и чем он отличается от Kubernetes?
k3s — это полностью совместимый облегчённый дистрибутив Kubernetes. kubectl и ваши манифесты работают так же. Компоненты вроде Traefik, CoreDNS и локального хранилища устанавливаются вместе с k3s, поэтому добавлять их отдельно не нужно.
Сколько RAM нужно k3s?
В официальной документации для узла server просят не менее 2 ядер и 2 ГБ RAM. Ориентир такой: для самого k3s хватит 2 ГБ, для нескольких приложений хорошим началом будет 4 ГБ, а для базы данных и большего числа сервисов — 8 ГБ.
Как подключиться к моему кластеру k3s?
Заберите файл командой scp root@IP:/etc/rancher/k3s/k3s.yaml ~/.kube/config, замените в нём 127.0.0.1 на IP-адрес своего сервера и выполните kubectl get nodes. На самом сервере работает и k3s kubectl.
Как открыть моё приложение наружу в k3s?
Определите Service и Ingress. Ingress-контроллер Traefik слушает порты 80 и 443 и передаёт запросы вашему сервису. Для HTTPS добавьте собственный сертификат как Secret.
Как работают постоянные тома в k3s?
В k3s входит Local Path Provisioner с классом хранилища local-path. Тома создаются в /var/lib/rancher/k3s/storage на сервере, поэтому попадают в ночной бэкап. Хранятся последние 7 дней, и это входит в цену.
Можно ли использовать Helm с k3s?
Да. Инструмент helm на вашем компьютере подключается с тем же файлом kubeconfig. k3s также сам применяет файлы, которые вы кладёте в /var/lib/rancher/k3s/server/manifests, в том числе ресурсы HelmChart.