使用默认存储在 AKS 中使用 terraform 创建 PV class
Create PV in AKS with terraform Using the default storage class
我想使用 AKS 集群附带的默认存储 class 在 AKS 集群中创建 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"
}
}
}
}
但是它说:The argument "data_disk_uri" is required, but no definition was found.
我明白了,这表明我应该从 Azure 门户输入磁盘的 URL,但在这种情况下,我没有使用存储 [=28] 在 azure 中创建磁盘=] 由 AKS 提供。
以前有人能够在 AKS 中创建这个吗?
您不能仅使用存储 class 创建 PV,因为存储Class 为管理员提供了一种描述他们提供的“classes”存储的方法。每个 StorageClass 都有一个 provisioner,用于确定使用哪个卷插件来配置 PV。必须指定此字段。
卷插件将是 Azure Disk
、Azure Files
、AWSElasticBlockStore
以及更多您可以参考 document 以获取存储 Class 的可用卷插件.
每个 StorageClass 包含字段 provisioner、parameters 和 reclaimPolicy,当属于 class 的 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
默认存储 class 提供标准 SSD Azure 磁盘。持久卷声明 (PVC) 用于根据存储 class 自动配置存储。在这种情况下,PVC 可以使用 pre-created 存储 class 之一来创建标准或高级 Azure 托管磁盘。
因此,根据上述声明,您需要创建像 Azure DIsk 这样的卷插件,没有在没有任何卷插件的情况下使用存储 class 在 AKS 中创建 PV 的选项
参考:https://kubernetes.io/docs/concepts/storage/storage-classes/
我想使用 AKS 集群附带的默认存储 class 在 AKS 集群中创建 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"
}
}
}
}
但是它说:The argument "data_disk_uri" is required, but no definition was found.
我明白了,这表明我应该从 Azure 门户输入磁盘的 URL,但在这种情况下,我没有使用存储 [=28] 在 azure 中创建磁盘=] 由 AKS 提供。 以前有人能够在 AKS 中创建这个吗?
您不能仅使用存储 class 创建 PV,因为存储Class 为管理员提供了一种描述他们提供的“classes”存储的方法。每个 StorageClass 都有一个 provisioner,用于确定使用哪个卷插件来配置 PV。必须指定此字段。
卷插件将是 Azure Disk
、Azure Files
、AWSElasticBlockStore
以及更多您可以参考 document 以获取存储 Class 的可用卷插件.
每个 StorageClass 包含字段 provisioner、parameters 和 reclaimPolicy,当属于 class 的 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
默认存储 class 提供标准 SSD Azure 磁盘。持久卷声明 (PVC) 用于根据存储 class 自动配置存储。在这种情况下,PVC 可以使用 pre-created 存储 class 之一来创建标准或高级 Azure 托管磁盘。
因此,根据上述声明,您需要创建像 Azure DIsk 这样的卷插件,没有在没有任何卷插件的情况下使用存储 class 在 AKS 中创建 PV 的选项
参考:https://kubernetes.io/docs/concepts/storage/storage-classes/