coreDNS介绍
CoreDNS是Golang编写的一个插件式DNS服务器,是Kubernetes 1.13 后所内置的默认DNS服务器 ,采用的开源协议为Apache License Version 2 ,CoreDNS也是CNCF孵化项目,目前已经从CNCF毕业; CoreDNS 的目标是成为 Cloud Native(云原生)环境下的 DNS 服务器和服务发现解决方案。
coreDNS ConfigMap
kubectl get configmap coredns -n kube-system -o yaml #查看coredns的配置文件
准备POD和Service
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: core
spec:
type: ClusterIP
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
配置解析
kubectl edit configmap coredns -n kube-system
- 现在集群容器里还无法正常解析service的域名
- 添加hosts解析
注意*这里保存退出之后,不用重启coredns pod,配置立即生效
- 测试
配置生效问题
coredns添加和删除hosts配置之后都不用重启coredns pod,但是删除hosts配置需要等一会儿才会生效,如果长时间没有生效,可以尝试重启下coredns pod。