0

我正在尝试使用我用 azure-file 类型定义的存储类动态配置存储。我尝试在 storageclass 中为 storageAccount 和 skuName 设置两个参数。这是我设置了 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 version 命令的输出

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"}

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

4

1 回答 1

1

我通过电子邮件向 microsoft azure support 发送了有关此问题的邮件并收到了答复。

acs kubernetes 版本 1.7.7 中存在一个错误,如果您在 master 的“/etc/kubernetes/manifests/kube-controller-manager.yaml”中的 --cluster-name 值,则不允许动态持久卷声明工作节点 VM 大于 16 个字符。非常隐蔽的错误。修复方法是升级您的集群或使用不同的名称重新部署。

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

于 2018-06-08T17:45:32.407 回答