Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何为GCP云sql私有ip生成DNS_Google Cloud Platform_Terraform - Fatal编程技术网

Google cloud platform 如何为GCP云sql私有ip生成DNS

Google cloud platform 如何为GCP云sql私有ip生成DNS,google-cloud-platform,terraform,Google Cloud Platform,Terraform,我一直在尝试使用Google Cloud SQL建立Kubernetes集群,并在Google Cloud中使用Terraform脚本建立私有IP连接。这些地形脚本工作得非常好。然后,我将Kubernetes配置汇总到使用此数据库专用IP的部署、服务和POD中。Terraform脚本每次创建数据库时都会使用随机的私有IP创建数据库。因此,在Kubernetes配置中手动设置IP非常不方便。有没有办法为这个私有IP生成私有DNS并在Kubernetes配置中使用它 我试图创建一个私有DNS区域,并

我一直在尝试使用Google Cloud SQL建立Kubernetes集群,并在Google Cloud中使用Terraform脚本建立私有IP连接。这些地形脚本工作得非常好。然后,我将Kubernetes配置汇总到使用此数据库专用IP的部署、服务和POD中。Terraform脚本每次创建数据库时都会使用随机的私有IP创建数据库。因此,在Kubernetes配置中手动设置IP非常不方便。有没有办法为这个私有IP生成私有DNS并在Kubernetes配置中使用它


我试图创建一个私有DNS区域,并分配一个指向云SQL私有IP的记录。但由于某些原因,它不起作用。

在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

这在地形上对我起了作用。只需将internal.example.org替换为您想要使用的任何域即可。还要确保您拥有管理云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"
}

不要使用IP地址。改用云SQL代理。代理使用实例名称而不是IP地址。关于将DNS用于私有IP地址的问题,请发布有关如何为云DNS配置“私有区域”的详细信息。包括有关如何访问专用区域的详细信息,如显示您试图解析的主机名的实际命令。Jonh,谢谢您的提问。在练习一个描述的过程中,我发现下面是一个关于如何创建dns的选项。我会用soultion更新主帖子。不要这样做。回滚编辑并将解决方案作为答案发布。然后接受你的答案,将问题标记为已解决。改变你认为你想要的基于地形的解决方案吗?但这不是事实。