目前,我们的kubernetes集群主机设置为区域,并要求它是区域性的。我的想法是将现有集群和所有工作负载/节点/资源转换为一些基础设施--如代码--最好是terraform (但可以像一组gcloud命令一样简单)。
我知道,使用GCP,我可以为即将运行的命令生成原始命令行,但我不知道如何(或者如果可以)将现有的基础设施转换成相同的基础结构。
根据我的研究,我不太可能以一种直截了当的方式去做我想做的事情。因此,我正在寻找任何建议,即使只是阅读一些其他文档(对于一个我可能不熟悉的工具)。
TL;DR:我正在寻找我现有的Google平台Kubernetes集群,并重新构建它,以便将位置类型从zonal更改为master --我并不在乎这是如何完成的。目前公认的最佳实践方法是什么?如果没有这样的方法,那么快速和肮脏的方法是什么?
如果你要求我进一步说明,我会-我故意忽略了链接到我做过的具体研究。
发布于 2019-01-16 20:45:16
使用terraform创建Kubernetes集群非常简单,因为最终在GKE中创建Kubernetes集群非常简单,您只需使用google_container_cluster和google_container_node_pool资源,如下所示:
resource "google_container_cluster" "primary" {
name = "${var.name}"
region = "${var.region}"
project = "${var.project_id}"
min_master_version = "${var.version}"
addons_config {
kubernetes_dashboard {
disabled = true
}
}
maintenance_policy {
daily_maintenance_window {
start_time = "03:00"
}
}
lifecycle {
ignore_changes = ["node_pool"]
}
node_pool {
name = "default-pool"
}
}
resource "google_container_node_pool" "default" {
name = "default"
project = "${var.project_id}"
region = "${var.region}"
cluster = "${google_container_cluster.primary.name}"
autoscaling {
min_node_count = "${var.node_pool_min_size}"
max_node_count = "${var.node_pool_max_size}"
}
management {
auto_repair = "${var.node_auto_repair}"
auto_upgrade = "${var.node_auto_upgrade}"
}
lifecycle {
ignore_changes = ["initial_node_count"]
}
node_config {
machine_type = "${var.node_machine_type}"
oauth_scopes = [
"https://www.googleapis.com/auth/cloud-platform",
]
}
depends_on = ["google_container_cluster.primary"]
}为了获得更全面的体验,有一些类似于这一个的terraform模块可用。
转换现有集群要困难得多。如果您想使用terraform import
terraform import google_container_cluster.mycluster us-east1-a/my-cluster但是,在您的评论中,您提到希望将区域集群转换为区域集群。不幸的是,此时的那不可能
创建群集时,您将决定集群是分区还是区域。不能将现有的区域群集转换为区域群集,反之亦然。
在我看来,你最好的选择是:
发布于 2021-04-14 08:15:37
我想要做到这一点:将现有的云基础设施作为代码(IaC)带到基础设施中,即将其放入*.tf文件中。
基本上,我找到并考虑了两种选择:
terraform import (文档)
由于下面的限制,terraform import没有完全实现我想要的目标,因为它需要手动创建资源。
Terraform导入的当前实现只能将资源导入状态。它不生成配置。未来版本的Terraform也将生成配置。
因此,在运行terraform导入之前,必须手动为资源编写资源配置块,将导入的对象映射到该资源。该工具与提供者无关,并以terraform形式遵循流程,即plan和import。它能够导入整个工作区的特定资源,并将其转换为*.tf文件。
https://stackoverflow.com/questions/54223797
复制相似问题