我们计划在K8S上使用Azure Kubernetes服务。我们有Azure文件共享。是否可以在Pod或部署中以某种方式引用Azure文件共享?yaml定义,以便卷可以安装在容器(Pod)级别?这个引用是否需要在AKS集群创建期间定义,或者在我们执行kubectl apply
命令部署容器pod时以某种方式引用它就足够了?
因此,按照@AndreyDonald提供的将文件共享挂载为卷文档的方式,您可以像这样引用
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
name: mypod
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
volumeMounts:
- name: azure
mountPath: /mnt/azure
volumes:
- name: azure
azureFile:
secretName: azure-secret
shareName: aksshare
readOnly: false
但在此之前,你应该创建一个Kubernetes密钥。
kubectl create secret generic azure-secret --from-literal=azurestorageaccountname=$AKS_PERS_STORAGE_ACCOUNT_NAME --from-literal=azurestorageaccountkey=$STORAGE_KEY
为了创建这个秘密,你应该使用assign正确的值给vars
$AKS_PERS_STORAGE_ACCOUNT_NAME
$STORAGE_KEY
你不需要创建新的文件共享,只需
# Get storage account key
STORAGE_KEY=$(az storage account keys list --resource-group $AKS_PERS_RESOURCE_GROUP --account-name $AKS_PERS_STORAGE_ACCOUNT_NAME --query "[0].value" -o tsv)
并使用它