如何将文件和/或文件夹持久化到谷歌计算引擎永久磁盘中以在 GKE 中使用?
Posted
技术标签:
【中文标题】如何将文件和/或文件夹持久化到谷歌计算引擎永久磁盘中以在 GKE 中使用?【英文标题】:How to persist files and/or folders into google compute engine persistent disk for use in GKE? 【发布时间】:2021-05-30 16:50:33 【问题描述】:我有一个 GKE 集群和一个由 terraform 创建的谷歌计算引擎永久磁盘。该磁盘用于创建 kubernetes 持久卷,然后将其声明并安装到 pod 中的容器。
我想要做的是将一些文件和文件夹保留在该永久磁盘中,以便在挂载它时,我的容器能够访问这些文件和文件夹。我已经尝试过研究,似乎这样做的方法是将磁盘安装到计算引擎甚至容器上,然后从本地复制并粘贴到那里。
有没有更好的方法?最好使用 terraform。
这就是这些资源的定义方式。
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_gbGi"
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_gbGi"
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"
【问题讨论】:
【参考方案1】:方法是正确的。如果要初始化磁盘:
您可以从空白磁盘开始,然后通过将其挂载到 Compute Engine 将数据写入其中 您可以从快照或图像中创建磁盘,其中数据已经和以前存储过关于 Terraform,我有一个意见,现在为您提供真正的答案。 Terraform 是一个 IaC 工具:基础设施即代码。这意味着:致力于基础设施。
在您的情况下,您想要执行“软件部署”。你部署的 K8S 资源,还有磁盘准备和挂载等。国际海事组织,Terraform 不是这个的正确工具。您还有其他更适合软件/操作系统管理的工具,例如 Ansible。
注意:我确信使用 Terraform 0.13 或 0.14,您可以创建可以执行并实现您想要的脚本,但我认为这不是正确的方法。
【讨论】:
以上是关于如何将文件和/或文件夹持久化到谷歌计算引擎永久磁盘中以在 GKE 中使用?的主要内容,如果未能解决你的问题,请参考以下文章