我一直在尝试使用Google Cloud SQL建立Kubernetes集群,并通过私有IP连接与Google Cloud中的Terraform脚本进行通信。这些terraform脚本工作得很好。然后,我将使用该数据库私有IP的部署,服务和Pod汇总Kubernetes配置。 Terraform脚本每次创建时都会使用随机的私有IP创建数据库的问题。因此在Kubernetes配置中手动设置IP非常不方便。有什么方法可以为此私有IP生成私有DNS并在Kubernetes配置中使用它?
我试图创建一个私有DNS区域并分配一条指向Cloud SQL私有IP的记录。但这由于某些原因无法正常工作。
答案 0 :(得分:0)
在GCP中有什么合适的方法吗?
适用于我的更新解决方案
DNS区域和记录集是通过以下命令创建的
gcloud beta dns --project=project-name managed-zones create private-db-zone --description= --dns-name=db.test.com. --visibility=private --networks project-network-dev
gcloud dns --project=project-name record-sets transaction start --zone=private-db-zone
gcloud dns --project=project-name record-sets transaction add 10.116.0.3 --name=private.db.test.com. --ttl=300 --type=A --zone=private-db-zone
gcloud dns --project=project-name record-sets transaction execute --zone=private-db-zone
答案 1 :(得分:0)
这在Terraform中对我有用。只需将internal.example.org替换为您想使用的任何域。另外,请确保您具有管理Cloud DNS的权限。
resource "google_dns_managed_zone" "private_zone" {
name = "private-zone"
dns_name = "internal.*example*.org."
description = "Internal DNS zone"
visibility = "private"
private_visibility_config {
networks {
network_url = module.vpc.network_self_link
}
}
}
resource "google_dns_record_set" "db_dns" {
depends_on = [google_dns_managed_zone.private_zone]
managed_zone = google_dns_managed_zone.private_zone.name
name = "db.${google_dns_managed_zone.private_zone.dns_name}"
rrdatas = [google_sql_database_instance.instance.private_ip_address]
ttl = 300
type = "A"
}