google-cloud-platform - 用于 Google Cloud Dataflow 管道的自定义 DNS 解析器

标签 google-cloud-platform google-cloud-dataflow google-kubernetes-engine

我正在尝试从 Dataflow 管道访问在 GKE 中运行的 Kafka 和第 3 方服务(例如 InfluxDB)。

我有一个用于服务发现的 DNS 服务器,也在 GKE 中运行。我的网络中还有一条从 Dataflow 实例访问 GKE IP 范围的路由,这工作正常。我可以手动nslookup从使用我的自定义服务器的 Dataflow 实例没有问题。

但是,我找不到设置附加 DNS 服务器的正确方法 运行我的 Dataflow 管道时 .我怎么能做到这一点,以便 KafkaIO和类似的来源/作者可以根据我的自定义 DNS 解析主机名吗?
sun.net.spi.nameservice.nameservers使用起来很棘手,因为它必须在名称服务静态实例化之前很早就被调用。我会打电话java -D ,但 Dataflow 将直接运行代码本身。

此外,我不想只替换系统解析器,而只是将一个新的解析器附加到实例预配置的 GCP 项目特定的解析器。

最后,我还没有找到任何方法来使用启动脚本,例如用于带有 Dataflow 实例的常规 GCE 实例。

最佳答案

除了编辑框中的/etc/resolv.conf[1] 文件之外,我今天想不出在 VM 中指定自定义 DNS 的方法。我不知道是否可以共享默认网络。如果在 hostName.c.[PROJECT_ID].internal 上有可用的机器,如果 hostName 是稳定的 [2],这可以满足您的目的。

[1] https://cloud.google.com/compute/docs/networking#internal_dns_and_resolvconf [2] https://cloud.google.com/compute/docs/networking

关于google-cloud-platform - 用于 Google Cloud Dataflow 管道的自定义 DNS 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42844472/

相关文章:

google-cloud-platform - GKE 自动扩缩上的 Cloud Run

google-cloud-platform - 如何将 docker 附加到容器 - Google Cloud Platform/Kubernetes

java - 当应用程序处于后台或被终止时,如何启动我的应用程序或收到通知的 Activity ?

google-cloud-platform - 将数据流从 Google Cloud Storage 流式传输到 Bigquery

ubuntu - 到达 Tomcat 时出现 ERR_CONNECTION_TIMED_OUT

google-cloud-dataflow - 为什么 Dataflow-BigTable 连接器不支持增量?

google-cloud-platform - 通过谷歌云部署管理器创建的谷歌数据流

ssl - 为什么 Google 管理的 SSL 证书要求域 DNS 指向静态 IP 地址而不是负载均衡器本身?

hadoop - 如何在使用 Google Cloud Dataproc 启动的 Spark 集群中启用 Snappy 编解码器支持?

google-cloud-platform - 谷歌云 bigtable 列版本未删除