
С помощью Azure Vault и драйвера CSI можно создавать секреты и получать к ним доступ как к отдельным файлам в контейнере.
Я последовал заэтотподход к созданию базовых секретов.
Возможен доступ к секретам из контейнера в виде секретных файлов внутри него.
Но когда я попытался создать из него секрет и использовать его для imagePull, это не сработало.
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
name: azure-kvname
namespace: default
spec:
provider: azure
secretObjects:
- secretName: acr-test
type: kubernetes.io/dockerconfigjson
data:
- objectName: martrepo
key: .dockerconfigjson
parameters:
usePodIdentity: "false"
useVMManagedIdentity: "false"
userAssignedIdentityID: ""
keyvaultName: "secret-store-dummy"
objects: |
array:
- |
objectName: secret1
objectType: secret
objectVersion: ""
- |
objectName: martrepo
objectType: secret
objectVersion: ""
tenantId: "f33abe27-86cd-46d6-ae2b-b918362ab160"
---
kind: Pod
apiVersion: v1
metadata:
name: busybox-secrets-store-inline
spec:
containers:
- name: busybox
image: k8s.gcr.io/e2e-test-images/busybox:1.29
command:
- "/bin/sleep"
- "10000"
volumeMounts:
- name: secrets-store-inline
mountPath: "/mnt/secrets-store"
readOnly: true
volumes:
- name: secrets-store-inline
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "azure-kvname"
nodePublishSecretRef: # Only required when using service principal mode
name: secrets-store-creds
Вышеуказанный секрет acr-test я попытался использовать при развертывании приложения в imagePullSecrets, но он не сработал, так как события показывали проблемы с извлечением изображения.
Пожалуйста, помогите мне разобраться, если подход неверный.
И еще, как использовать эти секреты как часть существующей configmap?
решение1
Я не верю, что это достижимо. Драйвер CSI монтирует секрет внутри контейнера как том, но секрет извлечения образа необходим до создания контейнера и монтирования тома, поэтому секрет не будет доступен.
Вам нужно будет настроить его как стандартный статический секрет Kubernetes.