
借助 azureVault 和 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 部署應用程式時使用,但它沒有出現,因為事件顯示拉取映像的問題。
如果方法錯誤,請指導我。
另外,如何使用這些秘密作為現有組態映射的一部分?
答案1
我不相信這是可以實現的。 CSI 驅動程式將機密作為磁碟區安裝在容器內,但在建立容器和安裝磁碟區之前需要映像拉取機密,因此該機密將無法使用。
您需要將其設定為標準靜態 Kubernetes 金鑰。