- 我有2个示例运行在2个节点上,每个示例运行在不同的节点上。
- 这些节点位于同一子网中,并且可以自己执行TCP/UDP/ICMP。
这些Pod有一些主机名,即:
- 钻探-分段-75cddd789-kbzsq
- 钻探-分段-75cddd789-amsrj
**从Pod Drill-Staging-75cddd789-kbzsq我无法解析Drill-Staging-75cddd789-amsrj的主机名,反之亦然。**解析自身Pod的名称起作用。
我试着设置了各种dnsPolicy:
- ClusterFirst:没有运气
- 默认:运气不佳
- ClusterFirstWithHostNet:运气不佳,it事件无法解析其自身节点的主机名
- 无:未尝试(我认为这不是一个好方法)
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "app.name" . }}
namespace: {{ .Values.global.namespace }}
spec:
replicas: 2
selector:
matchLabels:
app: {{ include "app.name" . }}
template:
metadata:
labels:
app: {{ include "app.name" . }}
spec:
containers:
- name: {{ include "app.name" . }}
image: ...
resources:
...
ports:
...
imagePullPolicy: Always
restartPolicy: Always
1条答案
按热度按时间gcuhipw91#
正常情况下,只有服务才会获得DNS名称,而不是Pod。因此,默认情况下,您不能直接通过域名来引用另一个Pod,只能通过其IP地址来引用。
Pod只有在包含无头服务的特定条件下才会获得DNS名称,如文档中所述。具体来说,条件是:
hostname
字段subdomain
字段subdomain
字段在这种情况下,每个Pod都会获得一个如下形式的全限定域名:
其中,
my-hostname
是Pod的hostname
字段,my-subdomain
是Pod的subdomain
字段。注意:为Pod的“主机名”而不是为Pod的“名称”创建的DNS名称。
您可以使用以下设置对其进行测试:
应用此命令后,您可以执行以下任一Pod:
并且您应该能够解析这两个Pod的完全限定域名:
由于您从与目标Pod相同的命名空间发出请求,因此可以将域名缩写为: