В этом руководстве показана регистрация Kubernetes-кластера путём развёртывания Kubernetes Service (chart airlock-kube-agent) на защищаемом кластере.
Pod Kubernetes Service определяет, что работает в Kubernetes, и автоматически регистрирует кластер в Airlock.
Предварительные требования
- Работающий кластер Airlock,
airctlиairshсовместимой с сервером версии:
airctl version
airsh version- Kubernetes >= 1.28, Helm >= 3.14,
kubectlс доступом к целевому кластеру:
helm version
kubectl version- Доступ администратора к веб-интерфейсу Airlock (для мастера регистрации) или возможность выполнить шаги вручную ниже.
Шаг 1 из 3. RBAC в Airlock и Kubernetes
Роль Airlock
Создайте kube-access.yaml:
kind: role
metadata:
name: kube-access
version: v6
spec:
allow:
kubernetes_labels:
'*': '*'
kubernetes_resources:
- kind: 'pod'
namespace: '*'
name: '*'
kubernetes_groups:
- viewers
deny: {}airctl create -f kube-access.yamlНазначьте роль пользователю через airctl users update.
ClusterRoleBinding в Kubernetes
Группа viewers должна иметь права в кластере. Создайте viewers-bind.yaml:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: viewers-crb
subjects:
- kind: Group
name: viewers
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: view
apiGroup: rbac.authorization.k8s.iokubectl apply -f viewers-bind.yamlШаг 2 из 3. Развёртывание Kubernetes Service
Helm-репозиторий
helm repo add airlock https://charts.airlock.deckhouse.ru
helm repo updateРучная установка
Сгенерируйте join-токен:
airctl tokens add --type=kube --ttl=1hСоздайте файл значений airlock-kube-agent-values.yaml (подставьте токен и адрес proxy):
roles: kube
proxyAddr: airlock.example.com:443
authToken: "YOUR_KUBE_JOIN_TOKEN"
kubeClusterName: my-k8s-clusterУстановите chart в namespace airlock-agent:
kubectl create namespace airlock-agent
helm install airlock-agent airlock/airlock-kube-agent \
--namespace airlock-agent \
--values airlock-kube-agent-values.yamlПроверьте pod:
kubectl get pods -n airlock-agentЧерез веб-интерфейс: Enroll New Resource → Kubernetes — скопируйте сгенерированную команду и выполните её на рабочей станции.
Шаг 3 из 3. Проверка доступа
Войдите в Airlock:
airsh login --proxy=airlock.example.com:443 --user=myuserСписок кластеров:
airsh kube lsПолучите учётные данные для kubectl:
airsh kube login my-k8s-cluster
kubectl get pods -n airlock-agentОжидаемый вывод:
NAME READY STATUS RESTARTS AGE
airlock-agent-0 1/1 Running 0 8mСледующие шаги
- Ограничьте доступ через метки Kubernetes и роли Airlock вместо широких прав
viewна все namespace. - Если Auth Service и Proxy Service уже развёрнуты отдельно, достаточно агента без chart
airlock-cluster.