如何解决无法使用hostNetwork解析容器内的Kubernetes服务名称
使用hostNetwork
时无法使用Kubernetes内部DNS:
/ test# nslookup echo
Server: 10.96.0.10
Address 1: 10.96.0.10
nslookup: can't resolve 'echo'
没有hostNetwork
:
/ test# nslookup echo
Server: 10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local
Name: echo
Address 1: 10.98.232.198 echo.default.svc.cluster.local
未升级的裸机上的Kubernetes 1.18.5(未全新安装)。
完整配置:
apiVersion: apps/v1
kind: DaemonSet
Metadata:
name: test
labels:
app: test
spec:
selector:
matchLabels:
app: test
template:
Metadata:
labels:
app: test
spec:
hostNetwork: true
dnsPolicy: ClusterFirstWithHostNet
containers:
- image: busyBox:1.28
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
name: busyBox
---
apiVersion: apps/v1
kind: Deployment
Metadata:
name: echo
spec:
replicas: 1
selector:
matchLabels:
app: echo
template:
Metadata:
labels:
app: echo
spec:
containers:
- name: echo
image: jmalloc/echo-server
ports:
- name: http-port
containerPort: 8080
---
apiVersion: v1
kind: Service
Metadata:
name: echo
spec:
ports:
- name: http-port
port: 80
targetPort: http-port
protocol: TCP
selector:
app: echo
解决方法
全新安装的Kubernetes 1.19.0解决了此问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。