【发布时间】:2020-01-20 14:02:22
【问题描述】:
我正在使用以下清单。我有一个简单的服务器,它在/hello 上打印 pod 名称。在这里,我正在浏览 kubernetes 文档,它提到我们也可以通过服务名称访问服务。但这对我不起作用。由于这是NodePort 类型的服务,我可以使用其中一个节点的IP 访问它。我的清单有问题吗?
apiVersion: apps/v1
kind: Deployment
metadata:
name: myhttpserver
labels:
day: zero
name: httppod
spec:
replicas: 1
selector:
matchLabels:
name: httppod
day: zero
template:
metadata:
labels:
day: zero
name: httppod
spec:
containers:
- name: myappcont
image: agoyalib/trial:tryit
imagePullPolicy: IfNotPresent
---
apiVersion: v1
kind: Service
metadata:
name: servit
labels:
day: zeroserv
spec:
type: NodePort
selector:
day: zero
name: httppod
ports:
- name: mine
port: 8080
targetPort: 8090
编辑:我创建了自己的 mini k8s 集群,并在主节点上执行这些操作。
【问题讨论】:
-
你是如何通过服务名访问的?你能发布 curl 命令吗?
-
卷曲服务:
/hello -
深入挖掘并意识到当我尝试使用服务名称时,它不是在联系 coreDNS,而是在 VM 上配置的本地 DNS。这就是问题所在。如果我们在任何 pod 中执行,那么 coreDNS 将被访问,并且服务名称将被解析。
标签: kubernetes