使用EFS时Terraform kubernetes\persistent_volume的persistent_vol



我在k8s集群中使用EFS作为CSI驱动程序
我想使用Terraform创建一个PV,该PV将使用efs存储类。我验证了我可以创建PV";"手动";。

我想使用kubernetes_persistent_volume资源,使用Terraform自动创建PV。该资源提供了许多持久卷源选项,其中包括运行良好的AWS EBS。然而,我找不到一个适合EFS的,有人知道吗?

您可以使用较新版本的kubernetes提供程序,并安装csi驱动程序(如Shashank的回答(

示例

resource "kubernetes_persistent_volume" "pv_example" {
provider = "kubernetes.localkubernetes"
metadata {
name = local.efs_name
}
spec {
access_modes = ["ReadWriteMany"]
capacity = {
storage = "50Gi"
}
persistent_volume_source {
csi {
driver = "efs.csi.aws.com"
volume_handle = EXISTING_EFS_VOLUME
}
}
}
}

这里我定义了

provider "kubernetes" {
alias = "localkubernetes"
...
version                = "= 1.13.3"
}

因为terraform还有一个来自我正在使用的模块的kubernetes提供程序(旧版本(,所以我需要显式地给一个提供程序一个足够新的版本。(很抱歉无法找到添加的确切版本(

您可以使用terraform启用这样的EFS存储类。另请参阅EFS提供商。

variable cluster_interpreter {
type    = list(string)
default = ["/bin/sh", "-c"]
}
variable class {
type    = string
default = "kubectl apply -k 'github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=master'"
}
resource "null_resource" "storage" {
provisioner "local-exec" {
command     = var.class
interpreter = var.cluster_interpreter
}
}

相关内容

  • 没有找到相关文章

最新更新