假设我有一个包含所有应用程序的现有GKE集群。它们都是用不同的方法部署的。现在我想使用Terraform将一些资源部署到该集群。这里的问题是terraform在他的状态文件中看不到它,所以它不能与它交互。另一个问题是,即使我将集群保存到我的状态文件中,terraform也看不到该集群中所有已创建的资源。这可能会导致一些冲突,例如,我试图部署两个具有相同名称的资源。是否有办法解决这个问题,或者我只需要面对我存在的现实,并为我使用terraform部署的每个新项目创建一个新集群?
您可以使用terraform import命令将您现有的GKE集群导入到terraform状态。在运行它之前,您需要为您的集群准备足够的地形配置。
导入命令示例:
terraform import google_container_cluster.<TF_RESOURCE_NAME> projects/<PROJECT_ID>/locations/<YOUR-CLUSTER-ZONE>/clusters/<CLUSTER_NAME>
对于地形配置:
resource "google_container_cluster" "<TF_RESOURCE_NAME>" {
name = "<CLUSTER_NAME>"
location = "<YOUR-CLUSTER-ZONE>"
}
CLUSTER_NAME是在Google Cloud Console的GKE集群列表中显示的名称。
然后您还需要使用terraformgoogle_container_node_pool
资源以相同的方式导入集群节点池。