此时,仅当POD是无头服务的一部分时,才可以对POD IP进行反向DNS查找或PTR类型查找(详细信息:
https://github.com/kubernetes/dns/pull/25
)但即使这样也有它的局限性。此外,kubernetes根本没有默认的每POD dns名称,即使在kubernetes集群中,您也不能说
curl http://<pod_name>
myservice-0dkd0
在里面。
也就是说,你可以在这里实现你想要的非dns方式。假设您在linux上运行,则可以使用
/etc/hosts
要维护特定系统专用的名称到ip和ip到名称列表,不需要遵守真正DNS的所有限制。
如果在mysql主机上,每1分钟运行一次类似下面的命令,比如cron,那么应该在
/etc/主机
几乎所有的时间:
NAMESPACE=default
sed -i "/^[0-9\.]*\t[a-zA-Z0-9-]*\.$NAMESPACE/d" /etc/hosts
kubectl get pod --namespace default --field-selector=status.phase==Running -o jsonpath='{range .items[*]}{.status.podIP}{"\t"}{.metadata.name}.{.metadata.namespace}{"\n"}{end}' >> /etc/hosts