我在azure云中工作,想使用azure azure中的文档添加一个简单的ServiceProviderClass/秘密存储csi驱动程序提供商azure取代secret
、keyvaultName
和tenantId
apiVersion: secrets-store.csi.x-k8s.io/v1alpha1
kind: SecretProviderClass
metadata:
name: azure-kvname
spec:
provider: azure
parameters:
usePodIdentity: "false" # [OPTIONAL] if not provided, will default to "false"
keyvaultName: "kvname" # the name of the KeyVault
cloudName: "" # [OPTIONAL for Azure] if not provided, azure environment will default to AzurePublicCloud
objects: |
array:
- |
objectName: secret1
objectType: secret # object types: secret, key or cert
objectVersion: "" # [OPTIONAL] object versions, default to latest if empty
tenantId: "tid" # the tenant ID of the KeyVault
当我尝试使用Azure Cloud Bash:将其应用于集群时
hacker@Azure:~$ kubectl apply -f secrets-provider.yaml
error: unable to recognize "secrets-provider.yaml.yaml": no matches for kind "SecretProviderClass" in version "secrets-store.csi.k8s.io/v1alpha1"
尽管文档上到处都是这种类型和版本,但它们似乎是不兼容的。
问题其实很简单,secret-store-csi-driver
还没有安装。因此,它没有得到承认。基本上要确保你遵循预先要求。
从Azure云终端,您可以使用Helm安装驱动程序:
helm repo add secrets-store-csi-driver https://raw.githubusercontent.com/kubernetes-sigs/secrets-store-csi-driver/master/charts
helm install csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver
驱动程序机密存储csi驱动程序提供商azure#259存在一个持续的问题,对于azure,您需要显式指定
--grpc-supported-providers=azure
现在它可以工作了:
hacker@Azure:~$ kubectl apply -f secrets-provider.yaml
secretproviderclass.secrets-store.csi.x-k8s.io/azure-kvname created
hacker@Azure:~$ kubectl get SecretProviderClass
NAME AGE
azure-kvname 39s
希望这会有所帮助。