Как вы интегрируете Kubernetes с HashiCorp Vault? Как инжектировать секреты декларативно?
Answer from AI
sobes.tech AI
Интеграция Kubernetes с HashiCorp Vault позволяет безопасно управлять и инжектировать секреты в поды без хранения их в манифестах.
Основные способы интеграции:
-
Vault Agent Injector — sidecar-контейнер, который автоматически получает секреты из Vault и монтирует их в под как файлы или переменные окружения.
-
CSI Driver для Vault — позволяет монтировать секреты как тома в поды декларативно через Volume.
-
Использование Kubernetes Auth Method в Vault — поды аутентифицируются в Vault с помощью сервис-аккаунтов Kubernetes.
Декларативный пример с Vault Agent Injector:
apiVersion: v1
kind: Pod
metadata:
name: example-pod
annotations:
vault.hashicorp.com/agent-inject: "true"
vault.hashicorp.com/role: "k8s-role"
vault.hashicorp.com/agent-inject-secret-config.txt: "secret/data/myapp/config"
spec:
serviceAccountName: vault-auth
containers:
- name: app
image: myapp:latest
volumeMounts:
- name: vault-secrets
mountPath: /vault/secrets
volumes:
- name: vault-secrets
emptyDir: {}
В этом примере Vault Agent автоматически получает секреты из пути secret/data/myapp/config и монтирует их в контейнер. Все настройки происходят через аннотации и манифесты Kubernetes, что обеспечивает декларативность и безопасность.