我使用EFS作为k8s集群中的CSI驱动程序。
我想使用Terraform创建一个使用efs存储类的PV。我验证了我可以“手动”创建PV。
我想使用kubernetes_persistent_volume资源在Terraform中自动创建PV。该资源提供了许多persistent volume sources选项,其中包括运行良好的AWS EBS。但是我找不到一个适合EFS的,有谁有主意吗?
发布于 2020-11-04 18:28:36
您可以使用terraform像这样启用EFS存储类。另请参阅EFS provider。
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
}
}发布于 2020-11-14 17:10:50
您可以使用较新版本的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提供程序(具有较旧的版本),所以我需要显式地提供一个足够新的提供程序。(抱歉,无法跟踪添加的确切版本)
https://stackoverflow.com/questions/64630508
复制相似问题