问题描述
apiVersion: v1
kind: PersistentVolume
Metadata:
name: azurefile
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteMany
azureFile:
secretName: azure-secret
shareName: aksshare
readOnly: false
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=1000
- gid=1000
- mfsymlinks
- nobrl
目前我需要使用存储帐户密钥创建一个秘密,以使 pv 正常工作。 有没有办法在不创建秘密的情况下挂载文件共享,最好使用环境变量?例如,将帐户密钥放在环境变量中或使用服务主体凭据。
我也尝试使用 kustomise secretGenerator 从 env 变量创建秘密,但每次的秘密名称都不一样,我无法在 pv yaml 文件中使用它。
解决方法
Kubernetes 是 secret 或 configmap 是仅向部署注入机密的一种方式。
如果您要秘密存储某些内容,则意味着您可以将其作为环境变量访问。
您可以创建一个存储类并像这样使用它:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: azurefile
provisioner: kubernetes.io/azure-file
mountOptions:
- dir_mode=0777
- file_mode=0777
- uid=0
- gid=0
- mfsymlinks
- cache=strict
- actimeo=30
parameters:
skuName: Standard_LRS
只有这样,您才能添加机密,因此您不必多次添加。