如何从无头服务获取 pods 主机名列表?

How to get list of pods hostnames from headless service?

我有一个用于 MongoDB 复制的状态集,我需要通过服务端点 pods 的所有主机名。我能够获取名称,但不完全是唯一的主机名列表。

$ dig srv mongodb +search +short
0 100 27017 mongodb-0.mongodb.pilot-bots.svc.cluster.local.

这里我得到了额外的内容0 100 27017,我想将其排除。

我怎样才能只得到名字?像下面的 IPS。

$ dig mongodb A +search +short
172.1.0.220

@anemyte 用他的 awk:

提供了一个有效的解决方案
dig srv mongodb +search +short | awk '{print }'

但是,您也可以从不同的方式来解决这个问题。 Dig has several options that can be adjusted in order to print only the info you desire as an output. This guide 更详细地解释了这种方法:

Get a not-quite-so-short answer?

Note that a short answer is different from only an answer. The way to get a detailed answer, but without any auxiliary information, is to turn off all the results (+noall) and then turn on only those sections you want.

Here’s a short answer followed by only an answer; the latter includes all the configuration information, including time-to-live (TTL) data, displayed in a format compatible with BIND configuration files.

使用 +noall 后跟您选择的其他选项将导致只显示您感兴趣的记录。您也可以只隐藏不想打印的记录,例如,使用 +nottlid 选项隐藏 TTL。