В этом руководстве показано, как зарегистрировать процесс Airlock с одним или несколькими сервисами в кластере, предъявив join-токен.
Предварительные требования
- Linux-сервер для процесса Airlock (виртуальная машина или контейнер на базе Linux).
- В этом руководстве регистрируется SSH Service (
node); тот же подход применим к Kubernetes Service, Database Service, Proxy Service и другим сервисам. - На административной машине установлен
airctlс доступом к кластеру.
Join-токен работает и с одним Proxy Service, и с несколькими за LB или DNS с несколькими A-записями. Процесс при подключении устанавливает туннель к каждому Proxy Service. Балансировщик должен использовать round-robin, а не sticky session.
Шаг 1 из 3. Установка Airlock
На Linux-хосте:
curl https://deckhouse.ru/downloads/airlock/install.sh | bash -sШаг 2 из 3. Подключение к кластеру
Генерация токена
На локальной машине с airctl:
airctl tokens add --ttl=5m --type=nodeПример вывода:
The invite token: abc123...
This token will expire in 5 minutes.
Run this on the new node to join the cluster:
> airlock start \
--roles=node \
--token=abc123... \
--ca-pin=sha256:... \
--auth-server=192.0.2.0:3025Поддерживаемые типы токенов
| Тип | Сервис Airlock |
|---|---|
app | Application Service |
auth | Auth Service |
bot | Machine ID |
db | Database Service |
discovery | Discovery Service |
kube | Kubernetes Service |
node | SSH Service |
proxy | Proxy Service |
windowsdesktop | Windows Desktop Service |
Список активных токенов:
airctl tokens lsПредпочитайте короткоживущие токены статическим. Статические токены в конфигурации Auth Service проще украсть или они могут утечь.
Запуск процесса с токеном
На хосте нового агента (замените JOIN_TOKEN и airlock.example.com):
sudo airlock configure \
--roles=node \
--token=JOIN_TOKEN \
--proxy=airlock.example.com:443 \
-o fileДля SSH Service можно использовать airlock node configure без флага --roles=node:
sudo airlock node configure \
--output=file:///etc/airlock.yaml \
--token=JOIN_TOKEN \
--proxy=airlock.example.com:443Запустите сервис:
sudo systemctl enable airlock
sudo systemctl start airlockПроверьте регистрацию узла:
airctl nodes lsПрямое подключение к Auth Service
Если Proxy Service недоступен с хоста агента, подключайтесь напрямую к Auth Service только при отсутствии других вариантов. Минимизируйте входящий трафик к Auth Service.
Получите CA pin:
airctl statusНастройте агент:
sudo airlock configure \
--roles=node \
--token=JOIN_TOKEN \
--auth-server=airlock.example.com:3025 \
-o fileУкажите CA pin в /etc/airlock.yaml (поле airlock.ca_pin):
sudo sed -i 's| ca_pin: ""| ca_pin: "sha256:..."|' /etc/airlock.yaml
sudo systemctl restart airlockCA pin становится недействительным после ротации CA (airctl auth rotate).
Шаг 3 из 3. Отзыв токена
Чтобы запретить использование токена:
airctl tokens rm TOKEN_TO_DELETEСледующие шаги
- SSH-узел — полный сценарий доступа к серверу
- Агент Kubernetes — подключение кластера Kubernetes