Azure ACS AzureFile动态持久卷声明

时间:2018-06-07 17:43:10

标签: azure kubernetes acs persistent-volumes persistent-volume-claims

我正在尝试使用类型为azure-file定义的存储类动态配置存储。我已经尝试在storageAccount和skuName的storageclass中设置两个参数。这是我设置storageAccount的示例。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: azuretestfilestorage
  namespace: kube-system
provisioner: kubernetes.io/azure-file
parameters:
  storageAccount: <storage_account_name>

存储类已成功创建,但是当我尝试使用此存储类创建持久卷声明时,持久卷创建失败,并显示以下错误:

Failed to provision volume with StorageClass "azuretestfilestorage": failed to find a matching storage account

以下是我的persistentvolumeclaim

的代码
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: logging-persistent-volume-claim-test
  namespace: kube-system
spec:
  accessModes:
    - ReadWriteMany  
  resources:
    requests:
      storage: 5Gi
  storageClassName: azuretestfilestorage

我的storageaccount肯定与我的acs群集在同一资源组和数据中心位置。我的理解是应该自动生成一个秘密的,持久的卷和文件共享。相反,我只是陷入了上述错误的待处理状态。

这是我的kubectl版本命令的输出

Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"d2835416544f298c919e2ead3be3d0864b52323b", GitTreeState:"clean", BuildDate:"2018-02-07T12:22:21Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.7", GitCommit:"8e1552342355496b62754e61ad5f802a0f3f1fa7", GitTreeState:"clean", BuildDate:"2017-09-28T23:56:03Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

任何输入都将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

我通过电子邮件发送了微软支持,并收到了答复。

如果您的--cluster-name值在“/etc/kubernetes/manifests/kube-controller-manager.yaml”中,则acs kubernetes版本1.7.7中存在一个错误,该错误不允许动态持久卷声明工作主节点VM的大小超过16个字符。非常模糊的bug。解决方法是升级您的群集或使用其他名称重新部署。

以下是错误报告:https://github.com/andyzhangx/demo/blob/master/issues/azurefile-issues.md#4-azure-file-dynamic-provision-failed-due-to-cluster-name-length-issue