add: под с 3X-UI ...

This commit is contained in:
Sergei Erjemin 2025-03-29 13:58:59 +03:00
parent 558653d7e9
commit 3a1ce1370b

View File

@ -34,7 +34,7 @@ NAME STATUS AGE
x-ui Active 6s x-ui Active 6s
``` ```
## Развёртывание 3X-UI ## Простое развёртывание 3X-UI в поде
Cоздадим манифест развертывания пода (этого YAML-файл с инструкциями для K3s, что и как запустить). Мы будем Cоздадим манифест развертывания пода (этого YAML-файл с инструкциями для K3s, что и как запустить). Мы будем
использовать SQLite как внутреннюю базу данных 3x-ui, и пока эта бызы будет храниться внутри пода. Позже сможем использовать SQLite как внутреннюю базу данных 3x-ui, и пока эта бызы будет храниться внутри пода. Позже сможем
@ -122,6 +122,8 @@ WARNING - XRAY: core: Xray 25.3.6 started
пользователей, менять логин и пароль на вход и т.д. Веб-интерфейс 3x-ui интуитивно понятен, так что разбираться пользователей, менять логин и пароль на вход и т.д. Веб-интерфейс 3x-ui интуитивно понятен, так что разбираться
не составит труда. не составит труда.
## Развертывание Kubernetes пода 3x-ui с постоянным хранилищем (PVC)
Есть, конечно, у 3x-ui под k3s минусы. В частности, внутри пода (`sudo kubectl exec -it -n x-ui x-ui-... -- /bin/sh`) Есть, конечно, у 3x-ui под k3s минусы. В частности, внутри пода (`sudo kubectl exec -it -n x-ui x-ui-... -- /bin/sh`)
не будет работать командный интерфейс 3x-ui (`x-ui admin`). Поды k3s работают на **Alpine**, а там некоторые команды не будет работать командный интерфейс 3x-ui (`x-ui admin`). Поды k3s работают на **Alpine**, а там некоторые команды
отличаются (например, нет `bash`, а только `ash`). Но web-панель работает как положено, и всё управление удобнее отличаются (например, нет `bash`, а только `ash`). Но web-панель работает как положено, и всё управление удобнее
@ -198,12 +200,12 @@ spec:
image: ghcr.io/mhsanaei/3x-ui:latest image: ghcr.io/mhsanaei/3x-ui:latest
# image: enwaiax/x-ui:latest # альтернативный облегчённый: меньше способов шифрования и китайский интерфейс # image: enwaiax/x-ui:latest # альтернативный облегчённый: меньше способов шифрования и китайский интерфейс
volumeMounts: volumeMounts:
- name: db-storage - name: db-storage # Имя тома, в который будет смонтирован...
mountPath: /etc/x-ui # Путь к базе данных внутри контейнера mountPath: /etc/x-ui # ...в путь к базе данных внутри контейнера
volumes: volumes:
- name: db-storage - name: db-storage # Имя тома, которое...
persistentVolumeClaim: persistentVolumeClaim: # ...должно быть постоянным хранилищем
claimName: x-ui-db-pvc # Ссылка на созданный PVC claimName: x-ui-db-pvc # ...и размещаться в PVC с именем 'x-ui-db-pvc'
``` ```
Применим обновлённый манифест: Применим обновлённый манифест:
@ -212,7 +214,12 @@ sudo kubectl apply -f ~/k3s/vpn/x-ui/deployment.yaml
``` ```
Под перезапустится, и теперь база данных будет храниться в постоянном хранилище Longhorn. При перезапуске пода или его Под перезапустится, и теперь база данных будет храниться в постоянном хранилище Longhorn. При перезапуске пода или его
"переезде" на другой узел, база данных останется доступной и не потеряется. "переезде" на другой узел, база данных останется доступной и не потеряется. Следует отметить, что при сбое узла
процесс перемещения пода занимает некоторое время. В кластере на Orange Pi 5, где проверки связности не очень
агрессивные, это может занять до 5 минут. В общем, это нормально.
## Единая точка входа VPN-соединений через под 3x-ui