【发布时间】:2017-08-08 05:46:55
【问题描述】:
我正在尝试从 Dataflow 管道访问在 GKE 中运行的 Kafka 和第 3 方服务(例如 InfluxDB)。
我有一个用于服务发现的 DNS 服务器,也在 GKE 中运行。我的网络中还有一条路由可以从 Dataflow 实例访问 GKE IP 范围,这工作正常。我可以使用我的自定义服务器从 Dataflow 实例手动nslookup 而不会出现问题。
但是,在运行我的 Dataflow 管道时,我找不到设置附加 DNS 服务器的正确方法。我怎样才能做到这一点,以便KafkaIO 和类似的来源/作者可以根据我的自定义 DNS 解析主机名?
sun.net.spi.nameservice.nameservers 使用起来很棘手,因为它必须在很早就被调用,在名称服务被静态实例化之前。我会打电话给java -D,但 Dataflow 将直接运行代码本身。
此外,我不想仅仅替换系统解析器,而只是将一个新的附加到实例预配置的 GCP 项目特定的解析器。
最后,我还没有找到任何方法来使用启动脚本,例如常规 GCE 实例和 Dataflow 实例。
【问题讨论】:
-
github.com/kubernetes/kubernetes/issues/33483 对此话题进行了一些讨论。
-
除了编辑框中的 /etc/resolv.conf[1] 文件之外,我今天想不出在 VM 中指定自定义 DNS 的方法。我不知道是否可以共享默认网络。如果是 hostName.c.[PROJECT_ID].internal 上可用的机器,如果 hostName 稳定 [2],这可能会满足您的目的。 [1]cloud.google.com/compute/docs/…cloud.google.com/compute/docs/networking
标签: google-cloud-platform google-cloud-dataflow google-kubernetes-engine