【问题标题】:Resolve mx records for a domain using dnsjava in kubernetes/ docker在 kubernetes/docker 中使用 dnsjava 解析域的 mx 记录
【发布时间】:2020-12-10 07:10:32
【问题描述】:

我正在尝试解析 kubernetes pod 中的 mx 记录。 dnsjava 库在容器外的 mac 和 ubuntu 上测试时可以工作,但部署后返回一个空数组。

需要在 k8s 或 docker 镜像中提供什么才能使其正常工作?

https://github.com/dnsjava/dnsjava

编辑 1

  Record[] records;
  try {
    records = new Lookup(mailDomain, Type.MX).run();
  } catch (TextParseException e) {
    throw new IllegalStateException(e);
  }
  if (records != null && records.length > 0) {
    for (final Record record : records) {
      MXRecord mx = (MXRecord) record;
      //do something with mx...
    }
  } else {
    log.warn("Failed to determine MX record for {}", mailDomain);
  }

log.warn 总是在 K8s 中执行。 docker 镜像是openjdk:11-jdk-slim,即它是 Debian。我刚刚在 Docker 之外的 Debian 上进行了测试,效果也很好。

【问题讨论】:

  • 如果它在 ubuntu 中工作,您是否在 ubuntu 容器中尝试过?你能否详细说明一下你是如何测试它的以及你收到了什么输出?
  • 我已编辑以提供更多信息。没有输出,run 返回 null 或空数组。我通过调用应用程序提供的 API 进行测试,然后调用上述代码。我在容器内外调用相同的 API

标签: docker ubuntu kubernetes dns dnsjava


【解决方案1】:

最后我无法让 dnsjava 在 docker/k8s 中工作。 我直接使用了JNDI,关注https://stackoverflow.com/a/16448180/400048 与该答案中给出的完全一样,这可以正常工作。

【讨论】:

    猜你喜欢
    • 2019-07-17
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 2010-10-08
    • 2020-10-03
    • 1970-01-01
    相关资源
    最近更新 更多