从本地Kubernetes群集访问Azure文件共享

时间:2019-12-10 09:08:26

标签: azure kubernetes kubernetes-helm azure-files helmfile

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“”装载卷:超时已过期等待   用于为“”荚连接或安装的卷。卸载清单   卷= [servicecatalog-persistent-storage]。未连接的列表   卷= [交互器属性服务目录持久存储   default-token-9fp7j]

     

安装参数:-t cifs -o   用户名=,密码=,文件模式= 0777,目录模式= 0777,版本= 3.0   //.file.core.windows.net/spps   /var/lib/kubelet/pods/44a70ebf-1b26-11ea-ab13-00155d0a4406/volumes/kubernetes.io~azure文件/ servicecatalog-spp-pv   输出:安装错误(11):资源暂时不可用

头盔图表(已删除冗余信息):

部署:

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文件诊断程序来确保端口是打开的,并且我们能够从我们的计算机进行连接。 link
  • 使用Azure Storage Explorer进行连接(有效)

Microsoft说Windows 10支持在本地requires SMB 3.0 for security reasons上连接到Azure文件共享,但是Kubernetes似乎使用CIFS(这是SMB的方言?),但是我们无法确定它是否支持访问以下内容: Azure文件共享。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  

在Linux上安装Azure文件共享的推荐方法是使用SMB   3.0。默认情况下,Azure文件需要在传输过程中进行加密,只有SMB 3.0支持这种加密。 Azure文件还支持SMB 2.1,   在传输过程中不支持加密,但是您可能无法安装Azure   与来自另一个Azure区域或本地的SMB 2.1共享文件   安全原因。

https://docs.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-linux

因此,如果您使用的是smb 2.1,则只能从同一区域内装入文件共享。不是来自本地工作站或另一个蔚蓝地区

由于您的cif挂载提到vers=3.0-我认为这对您来说应该可以。检查存储帐户的网络访问限制?或您的网络限制。例如445端口,或链接文章中提到的其他问题

相关问题