适用于Google Cloud Dataflow管道的自定义DNS解析程序

pea*_*eay 6 google-cloud-platform google-kubernetes-engine google-cloud-dataflow

我试图从Dataflow管道访问在GKE中运行的Kafka和第三方服务(例如,InfluxDB).

我有一个用于服务发现的DNS服务器,也在GKE中运行.我的网络中也有一条路径可以从Dataflow实例访问GKE IP范围,这很正常.我可以nslookup使用我的自定义服务器从Dataflow实例手动运行而不会出现问题.

但是,在运行Dataflow管道时,我找不到合适的方法来设置其他DNS服务器.我怎么能实现这一点,以便KafkaIO类似的源/编写者可以解析我的自定义DNS的主机名?

sun.net.spi.nameservice.nameservers使用起来很棘手,因为必须在名称服务静态实例化之前尽早调用它.我会打电话java -D,但Dataflow将直接运行代码本身.

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

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

小智 4

除了编辑框中的 /etc/resolv.conf[1] 文件之外,我现在想不出在虚拟机中指定自定义 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