coreDNS 安装
准备工作
1.在7-200主机上部署nginx
[root@hdss7-200 ~]#cat /etc/nginx/conf.d/k8s-yaml.od.com.conf
server{
listen 80;
server_name k8s-yaml.od.com;
location / {
autoindex on;
default_type text/plain;
root /data/k8s-yaml;
}
}
[root@hdss7-200 ~]#mkdir /data/k8s-yaml
[root@hdss7-200 ~]#nginx -t
[root@hdss7-200 ~]#nginx -s reload
2.在7-11上 追加A 记录 :k8s-yaml A 10.4.7.200
[root@hdss7-200 ~]#vim /var/named/od.com.zone
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VFCTJrvq-1659774531280)(C:\Users\Sulemon\AppData\Roaming\Typora\typora-user-images\1610940092312.png)]
重启named并验证
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H6OunP3b-1659774531281)(C:\Users\Sulemon\AppData\Roaming\Typora\typora-user-images\1610940224261.png)]
1 coredns用途
coredns github地址
coredns都做了什么:Kubernetes内部域名解析原理、弊端及优化方式
coredns在K8S中的用途,主要是用作服务发现,也就是服务(应用)之间相互定位的过程。
1.1 为什么需要服务发现
在K8S集群中,POD有以下特性:
- 服务动态性强
容器在k8s中迁移会导致POD的IP地址变化 - 更新发布频繁
版本迭代快,新旧POD的IP地址会不同 - 支持自动伸缩
大促或流量高峰需要动态伸缩,IP地址会动态增减
service资源解决POD服务发现:
为了解决pod地址变化的问题,需要部署service资源,用service资源代理后端pod,通过暴露service资源的固定地址(集群IP),来解决以上POD资源变化产生的IP变动问题
那service资源的服务发现呢?
service资源提供了一个不变的集群IP供外部访问,但
- IP地址毕竟难以记忆
- service资源可能也会被销毁和创建
- 能不能将service资源名称和service暴露的集群网络IP对于
- 类似域名与IP关系,则只需记服务名就能自动匹配服务IP
- 岂不就达到了service服务的自动发现
在k8s中,coredns就是为了解决以上问题。
2 coredns的部署
从coredns开始,我们使用声明式向k8s中交付