首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用EFS时Terraform kubernetes_persistent_volume的persistent_volume_source配置

使用EFS时Terraform kubernetes_persistent_volume的persistent_volume_source配置
EN

Stack Overflow用户
提问于 2020-11-01 17:42:51
回答 2查看 1.1K关注 0票数 1

我使用EFS作为k8s集群中的CSI驱动程序。

我想使用Terraform创建一个使用efs存储类的PV。我验证了我可以“手动”创建PV。

我想使用kubernetes_persistent_volume资源在Terraform中自动创建PV。该资源提供了许多persistent volume sources选项,其中包括运行良好的AWS EBS。但是我找不到一个适合EFS的,有谁有主意吗?

EN

回答 2

Stack Overflow用户

发布于 2020-11-04 18:28:36

您可以使用terraform像这样启用EFS存储类。另请参阅EFS provider

代码语言:javascript
复制
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
  }
}
票数 0
EN

Stack Overflow用户

发布于 2020-11-14 17:10:50

您可以使用较新版本的kubernetes提供程序,并结合安装csi驱动程序(如Shashank的答案)来完成此操作。

示例

代码语言:javascript
复制
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
        }
    }
  }
}

在这里,我定义了

代码语言:javascript
复制
provider "kubernetes" {
  alias = "localkubernetes"
  ...
  version                = "= 1.13.3"
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64630508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档