Networking 如何从其他pod解析pod主机名? 我有两个吊舱在两个节点上运行,每个吊舱在不同的节点上运行 这些节点位于同一子网中,可以自己使用TCP/UDP/ICMP
这些吊舱有一些主机名,即:Networking 如何从其他pod解析pod主机名? 我有两个吊舱在两个节点上运行,每个吊舱在不同的节点上运行 这些节点位于同一子网中,可以自己使用TCP/UDP/ICMP,networking,kubernetes,kube-dns,kubernetes-networking,Networking,Kubernetes,Kube Dns,Kubernetes Networking,这些吊舱有一些主机名,即: 钻孔-分段-75cddd789-kbzsq 钻孔-分段-75cddd789-amsrj 从pod drill-staging-75cddd789-kbzsq中,我无法解析drill-staging-75cddd789-amsrj的主机名,反之亦然。解析自身pod的名称有效 我尝试设置了各种DNS策略: ClusterFirst:运气不好 默认:没有运气 ClusterFirstWithHostNet:运气不好,it事件无法解析其自身节点的主机名 无:未尝试(我认
- 钻孔-分段-75cddd789-kbzsq
- 钻孔-分段-75cddd789-amsrj
- ClusterFirst:运气不好
- 默认:没有运气
- ClusterFirstWithHostNet:运气不好,it事件无法解析其自身节点的主机名
- 无:未尝试(我认为这不是一个好方法)
- POD有一个
字段hostname
- POD有一个
字段子域
- 有一个headless服务(在同一名称空间中)选择pod
- 无头服务的名称等于POD的
字段子域
my-hostname.my-subdomain.default.svc.cluster.local
其中my hostname
是Pod的hostname
字段,my subdomain
是Pod的subdomain
字段
注意:DNS名称是为Pod的“主机名”而不是Pod的“名称”创建的
您可以使用以下设置对此进行测试:
apiVersion: v1
kind: Service
metadata:
name: my-subdomain
spec:
selector:
name: my-test
clusterIP: None
---
apiVersion: v1
kind: Pod
metadata:
name: my-pod-1
labels:
name: my-test
spec:
hostname: my-hostname-1
subdomain: my-subdomain
containers:
- image: weibeld/ubuntu-networking
command: [sleep, "3600"]
name: ubuntu-networking
---
apiVersion: v1
kind: Pod
metadata:
name: my-pod-2
labels:
name: my-test
spec:
hostname: my-hostname-2
subdomain: my-subdomain
containers:
- image: weibeld/ubuntu-networking
command: [sleep, "3600"]
name: ubuntu-networking
应用此选项后,您可以将exec放入其中一个POD中:
kubectl exec -ti my-pod-1 bash
您应该能够解析两个POD的完全限定域名:
host my-hostname-1.my-subdomain.default.svc.cluster.local
host my-hostname-2.my-subdomain.default.svc.cluster.local
由于您是从与目标POD相同的命名空间发出请求,因此可以将域名缩写为:
host my-hostname-1.my-subdomain
host my-hostname-2.my-subdomain
这回答了你的问题吗?我认为您需要显式地使用
podname.namespace.pod.cluster.local
。在大多数情况下,通过服务是更好的做法。@DavidMaze好吧,也许我把问题搞错了。我试图完成的是为ApacheDrill创建一个集群。每个钻舱都通过自己的主机名注册给动物园管理员。pod中的主机名不是FQDN,因此它们使用无法解析的地址注册。但他们需要下定决心并互相交谈。。。基本上,如果可以在yaml中将主机名设置为FQDN就足够了。不幸的是,Drill本身没有任何用于此的配置。。对于这种情况,还有其他解决方案吗?
host my-hostname-1.my-subdomain
host my-hostname-2.my-subdomain