add: minor.
This commit is contained in:
28
kubernetes/k3s-3xui-pod.md
Normal file
28
kubernetes/k3s-3xui-pod.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Установка 3X-UI как под в K3s (Kubernetes)
|
||||
|
||||
3X-UI — это симпатичный веб-интерфейс для управления VPN-серверами, такими как WireGuard, Shadowsocks, Xray, V2Ray
|
||||
и тому подобное. Он позволяет настраивать и мониторить VPN-соединения и клиентов через браузер. Мы будем запускать
|
||||
его как контейнер (под) внутри K3s кластера на Orange Pi 5.
|
||||
|
||||
### Создание namespace (не обязательно)
|
||||
|
||||
Для удобства организации рекомендую создать отдельное пространство имён (`namespace`) для 3X-UI. Это как папка для
|
||||
ресурсов, чтобы они не смешивались с другими приложениями.
|
||||
|
||||
Выполним в терминале:
|
||||
```bash
|
||||
sudo kubectl create namespace x-ui
|
||||
```
|
||||
|
||||
Проверим, что пространство имён создано:
|
||||
```bash
|
||||
kubectl get namespaces
|
||||
```
|
||||
|
||||
Увидим x-ui в списке:
|
||||
```text
|
||||
NAME STATUS AGE
|
||||
... ... ...
|
||||
... ... ...
|
||||
x-ui Active 6s
|
||||
```
|
@@ -23,8 +23,8 @@
|
||||
│ └── cclient-shadowsocks--izmir/ # Локация Измир
|
||||
│ ├── config.yaml
|
||||
│ └── deployment.yaml
|
||||
├── ...
|
||||
└── ...
|
||||
├── …
|
||||
└── …
|
||||
```
|
||||
|
||||
Создаем файл `config.yaml` для первого Shadowsocks-клиента (Москва):
|
||||
@@ -61,7 +61,7 @@ data:
|
||||
- `data:` — данные конфигурации.
|
||||
- `config.json:` — имя файла, в который будет записан конфиг.
|
||||
- `|` — говорит, что дальше будет многострочный текст.
|
||||
- `{...}` — Собственно JSON-конфигурация нашего Shadowsocks-клиента.
|
||||
- `{…}` — Собственно JSON-конфигурация нашего Shadowsocks-клиента.
|
||||
- `server` и `server_port` — адрес и порт нашего VPS.
|
||||
- `local_address` и `local_port` — где будет SOCKS5 внутри кластера.
|
||||
- `password` и `method` — пароль и метод шифрования. Метод шифрования `chacha20-ietf-poly1305` -- используется,
|
||||
@@ -150,10 +150,10 @@ sudo k3s kubectl get pods -n kube-system
|
||||
Увидим что-то типа:
|
||||
```text
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
...
|
||||
...
|
||||
…
|
||||
…
|
||||
shadowsocks-client-moscow-54d64bf5f4-trb6p 1/1 Running 0 24m
|
||||
...
|
||||
…
|
||||
```
|
||||
|
||||
Можно проверь логи:
|
||||
@@ -232,10 +232,10 @@ sudo k3s ctr images ls | grep shadowsocks
|
||||
|
||||
Увидим что-то типа:
|
||||
```text
|
||||
...
|
||||
docker.io/library/shadowsocks-with-tools:latest application/vnd.oci.image.manifest.v1+json sha256:... 22.5 MiB linux/arm64 io.cri-containerd.image=managed
|
||||
...
|
||||
...
|
||||
…
|
||||
docker.io/library/shadowsocks-with-tools:latest application/vnd.oci.image.manifest.v1+json sha256:… 22.5 MiB linux/arm64 io.cri-containerd.image=managed
|
||||
…
|
||||
…
|
||||
```
|
||||
|
||||
Теперь нам нужно передать образ контейнера на другие ноды кластера. Как это сделать есть заметка "[Развертывание
|
||||
@@ -246,15 +246,15 @@ docker.io/library/shadowsocks-with-tools:latest application/vnd.oci.image.ma
|
||||
новый образ. Закомментируем строку `image: shadowsocks/shadowsocks-libev:latest` и вставим две строки после неё
|
||||
(обратите внимание на заметки):
|
||||
```yaml
|
||||
...
|
||||
…
|
||||
spec:
|
||||
containers:
|
||||
- name: shadowsocks-client
|
||||
# image: shadowsocks/shadowsocks-libev:latest
|
||||
image: shadowsocks-with-tools # Без :latest, чтобы k3s не "ходил" за контейнером в реестр (например, DockerHub)
|
||||
imagePullPolicy: Never # Только локальный образ, не тянуть из реестра
|
||||
...
|
||||
...
|
||||
…
|
||||
…
|
||||
```
|
||||
|
||||
Уберём старый под из deployment и удалим сам под из k3s:
|
||||
@@ -276,9 +276,9 @@ sudo k3s kubectl get pods -n kube-system
|
||||
Увидим что-то типа:
|
||||
```text
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
...
|
||||
…
|
||||
shadowsocks-client-moscow-6cf7b956b8-mtsg4 1/1 Running 0 9s
|
||||
...
|
||||
…
|
||||
```
|
||||
|
||||
#### Проверка работы Shadowsocks
|
||||
@@ -344,12 +344,12 @@ sudo k3s kubectl logs -n kube-system shadowsocks-client-moscow-<hash>
|
||||
Для этого нужно изменить _local_address_ в конфиге shadowsocks-клиента `config.yaml`:
|
||||
|
||||
```yaml
|
||||
...
|
||||
…
|
||||
"server_port": <ПОРТ>,
|
||||
# "local_address": "127.0.0.1",
|
||||
"local_address": "0.0.0.0",
|
||||
"local_port": 1081,
|
||||
...
|
||||
…
|
||||
```
|
||||
|
||||
Применим конфиг:
|
||||
@@ -437,9 +437,9 @@ sudo k3s kubectl get service -n kube-system
|
||||
Увидим что-то типа:
|
||||
```text
|
||||
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
|
||||
...
|
||||
…
|
||||
ss-moscow-service ClusterIP 10.43.236.81 <none> 1081/TCP,1081/UDP 5m5s
|
||||
...
|
||||
…
|
||||
```
|
||||
|
||||
Теперь другие поды могут обращаться к `ss-moscow-service.kube-system.svc.cluster.local:1081` как к SOCKS5-прокси.
|
||||
|
Reference in New Issue
Block a user