
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 シークレットとして設定する必要があります。