我正在尝试解析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上进行了测试,它也很有效。
最后我无法让dnsjava在docker/k8s中工作。我直接使用JNDI,如下https://stackoverflow.com/a/16448180/400048这与答案中给出的完全一样,没有任何问题。