我想使用 AKS 群集附带的默认存储类在 AKS 群集中通过 terraform 创建 PVC。这里是doc
如果我执行kubectl get sc
,我会得到:
但不确定如何使用 terraform 代码来引用它们。正在尝试:
resource "kubernetes_persistent_volume" "volume" {
metadata {
name = "${var.pv_name}"
}
spec {
capacity {
storage = "50Gi"
}
access_modes = ["ReadWriteOnce"]
persistent_volume_source {
azure_disk {
caching_mode = "None"
disk_name = "managed-premium"
kind = "Managed"
}
}
}
}
但它说:参数“data_disk_uri”是必需的,但未找到定义。
我明白了,这表明我应该从 Azure 门户输入磁盘的 URL,但在这种情况下,我没有使用 AKS 提供的存储类在 azure 中创建磁盘。 以前有人能够在 AKS 中创建这个吗?
最佳答案
您不能仅使用存储类别创建 PV,因为 StorageClass 为管理员提供了一种描述他们提供的存储“类别”的方法。每个 StorageClass 都有一个配置程序,用于确定使用什么卷插件来配置 PV。必须指定该字段。
卷插件将是 Azure Disk
、Azure Files
、AWSElasticBlockStore
等等,您可以引用 document用于存储类的可用卷插件。
每个StorageClass都包含字段provisioner、parameters和reclaimPolicy,当属于该类的PersistentVolume需要动态配置时使用这些字段。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp3
reclaimPolicy: Retain
allowVolumeExpansion: true
mountOptions:
- debug
volumeBindingMode: Immediate
默认存储类别提供标准 SSD Azure 磁盘。持久卷声明 (PVC) 用于根据存储类别自动配置存储。在这种情况下,PVC 可以使用预先创建的存储类之一来创建标准或高级 Azure 托管磁盘。
因此,根据上述声明,您需要创建像 Azure DISk 这样的卷插件,没有选项可以在没有任何卷插件的情况下使用存储类在 AKS 中创建 PV
引用:https://kubernetes.io/docs/concepts/storage/storage-classes/
关于azure - 使用 terraform 在 AKS 中创建 PV 使用默认存储类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71430954/