OS: Windows 10
Kubernetes version: 1.14.8
Helm version: 3
Docker Desktop version: 2.1.0.5
尝试使用 Helm-chart 部署 Kubernetes 集群,该 Helm-chart 包含连接到静态预配的 Azure 文件共享的 pod。部署到 Azure Kubernetes 集群是可行的,但是当我们尝试在 docker-desktop 本地部署集群时,它会在尝试挂载共享时收到错误消息:
无法为 pod "" 挂载卷:等待卷为 pod "" 附加或挂载的超时已过期。已卸载卷的列表 = [servicecatalog-persistent-storage]。未附加卷列表=[interactor-properties servicecatalog-persistent-storage default-token-9fp7j]
挂载参数:-t cifs -o username=,password=,file_mode=0777,dir_mode=0777,vers=3.0 //.file.core.windows.net/spps /var/lib/kubelet/pods/44a70ebf-1b26- 11ea-ab13-00155d0a4406/volumes/kubernetes.io~azure-file/servicecatalog-spp-pv 输出:挂载错误(11):资源暂时不可用
Helm 图表(删除了冗余信息):
部署:
apiVersion: apps/v1
kind: Deployment
spec:
spec:
containers:
- name: {{ .Release.Name }}-{{ .Chart.Name }}
volumeMounts:
- name: servicecatalog-persistent-storage
mountPath: /data/sppstore
volumes:
- name: servicecatalog-persistent-storage
persistentVolumeClaim:
claimName: servicecatalog-pv-claim
持久存储/声明:
apiVersion: v1
kind: PersistentVolume
metadata:
name: servicecatalog-spp-pv
labels:
usage: servicecatalog-spp-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
azureFile:
secretName: azurefile-secret
shareName: spps
readOnly: false
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: servicecatalog-pv-claim
annotations:
volume.beta.kubernetes.io/storage-class: ""
storageClass:
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
selector:
matchLabels:
usage: servicecatalog-spp-pv
秘密:
apiVersion: v1
kind: Secret
metadata:
name: azurefile-secret
type: Opaque
data:
azurestorageaccountname: <acc name>
azurestorageaccountkey:<acc key>
我们尝试过:
- 使用 Azure 文件诊断来确保端口处于打开状态,并且我们能够从我们的机器进行连接。关联
- 使用Azure 存储资源管理器连接(有效)
微软表示,出于安全原因,Windows 10 支持本地连接到 Azure 文件共享需要 SMB 3.0,但 Kubernetes 似乎使用 CIFS(这是 SMB 的一种方言?),但我们无法确定它是否支持访问 Azure 文件分享。有任何想法吗?