繁体   English   中英

如何将kubernetes pod的主机名设置为其IP地址?

[英]How to set a kubernetes pod's hostname to its IP address?

因此,我有一个部署,该部署创建了N个工作人员Pod,并且提供了一种在内部平衡流量的服务。 我从VM访问服务。 VM发出请求,然后Pod用其主机名进行响应,以便VM可以与其直接建立连接(用于将结果从实际完成工作的Pod中拉回)。

我遇到的问题是,我的Pod返回的主机名是my-pod-5ff75ddd86-2xdjq,VM无法解析该主机名。 我想知道是否可以将Pod的主机名设置为其IP,因为这意味着我不必更改Pod或VM中运行的工具的任何代码。

如果您不想更改代码,则需要公开群集的内部kube-dns ,并将其设置为VM的默认DNS服务器。

关于另一个问题有一些信息

如何为集群外的查询公开kube-dns服务?

在nginx-controller文档上,您有一个很好的示例,公开了UDP上的53端口

https://kubernetes.github.io/ingress-nginx/user-guide/exposing-tcp-udp-services/

通过启动并运行nginx-controller,您必须正确创建一个供该控制器使用的入口,并只需添加以下configMap

apiVersion: v1
kind: ConfigMap
metadata:
  name: udp-services
  namespace: ingress-nginx
data:
  53: "kube-system/kube-dns:53"

根据您的群集设置,您的VM可能甚至无法使用其IP连接到Pod。 默认情况下,pod IP位于覆盖网络上,该网络只能通过集群内部的形式访问。

如果VM在群集中,您确定针对kube DNS正确引用了pods主机名吗? 这是有关Pod的DNS的文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM