如何将文件和/或文件夹持久化到google计算引擎持久化磁盘中以供GKE使用?



我有一个GKE集群和一个由terraform创建的google计算引擎持久磁盘。该磁盘用于创建kubernetes持久卷,然后将其声明并挂载到pod中的容器中。

我想做的是在这个持久磁盘上持久化一些文件和文件夹,这样当它被挂载时,我的容器就可以访问这些文件和文件夹。我尝试过研究,似乎这样做的方法是将磁盘挂载到计算引擎甚至容器上,然后从本地复制和粘贴到那里。

有更好的方法吗?最好使用地形。

这些资源就是这样定义的。

resource "google_compute_disk" "app" {
name = "app-${var.project_id}"
type = "pd-standard"
zone = var.zone
size = var.volume_size_gb
labels = {
environment = var.environment
}
}
resource "kubernetes_persistent_volume" "app" {
metadata {
name = "app-${var.project_id}"
}
spec {
access_modes = ["ReadWriteOnce"]
capacity = {
storage = "${var.volume_size_gb}Gi"
}
persistent_volume_source {
gce_persistent_disk {
pd_name = google_compute_disk.app.name
fs_type = "ext4"
}
}
storage_class_name = "standard"
}
}
resource "kubernetes_persistent_volume_claim" "app" {
metadata {
name = "app-${var.project_id}"
}
spec {
access_modes = ["ReadWriteOnce"]
resources {
requests = {
storage = "${var.volume_size_gb}Gi"
}
}
volume_name = kubernetes_persistent_volume.app.metadata.0.name
storage_class_name = "standard"
}
}
resource "kubernetes_deployment" "core_app" {
metadata {
name = "core-app"
labels = {
app = "core"
}
}
spec {
replicas = 1
selector {
match_labels = {
app = "core"
}
}
template {
metadata {
labels = {
app = "core"
}
}
spec {
volume {
name = "app-volume"
persistent_volume_claim {
claim_name = kubernetes_persistent_volume_claim.app.metadata.0.name
}
}
container {
name = "core-app"
image = "core-image:latest"
port {
container_port = 8080
}
volume_mount {
mount_path = "/mnt/extra-addons"
name = "app-volume"
sub_path = "addons"
}
readiness_probe {
tcp_socket {
port = "8069"
}
initial_delay_seconds = 5
period_seconds = 10
}
image_pull_policy = "Always"
}
}
}
}
}

方法是正确的。如果要初始化磁盘:

  • 您可以从空白磁盘开始,然后通过将其挂载到计算引擎上向其中写入数据
  • 您可以从快照创建磁盘,或者从已经存储数据的映像中创建磁盘

关于Terraform,我有一个看法,现在给你一个真实的答案。Terraform是一个IaC工具:基础设施即代码。这意味着:专用于基础设施。

在您的情况下,您想要执行"软件部署"。部署的K8S资源,还有磁盘准备和挂载等等。在我看来,Terraform并不是合适的工具。你还有其他工具,比如Ansible,它们更适合软件/操作系统管理。

注意:我确信与Terraform 0.13或0.14你可以创建脚本,你可以执行和实现你想要的,但我认为这不是正确的方式。

相关内容

  • 没有找到相关文章

最新更新