簡介:
CoreDNS 其實就是一個 DNS 服務,而 DNS 作為一種常見的服務發現手段,所以很多開源項目以及工程師都會使用 CoreDNS 為集群提供服務發現的功能,Kubernetes 就在集群中使用 CoreDNS 解決服務發現的問題。
CoreDNS 的大多數功能都是由插件來實現的,插件和服務本身都使用了 Caddy 提供的一些功能,所以項目本身也不是特別的復雜。
實操:
1.官方 hub.docker.com 下載CoreDNS二進制包
2.解壓二進制包 /usr/local/src/
3.拷貝模板文件coredns
4.編輯coredns.yml
k8s的 service IP,創建K8s的時候就存在
可以通過進入一個容器查詢,因為創建容器會將該ip寫入nameserver
添加以上圈起來的權限,否則會出現以下1.8之后的版本bug
執行yaml文件創建coredns
遇到問題:
查看pod日志
#kubectl describe pod coredns-69d84cdc49-qcwjx -n kube-system
解決辦法:
注釋memory或者升級內核到5.4
重新執行
#kubectl apply -f coredns.yml
然后可以看到coredns的pod可以running了
查詢k8s中的service