私はKubernetesを初めて使用し、Kube-DNSとCoreDNSの違いをよりよく理解したいと思っています。
私の理解では、古いKube-DNSよりも新しいCoreDNSを使用することをお勧めします。
kubeadm
を使用して小さなクラスターをセットアップしましたが、CoreDNSとKube-DNSの違いについて少し混乱しています。
kubectl get pods --all-namespaces
を使用すると、2つのCoreDNSポッドが実行されていることがわかります。
ただし、kubectl get svc --all-namespaces
を使用すると、kube-dns
という名前のサービスがkube-system
名前空間で実行されていることもわかります。 kubectl describe svc/kube-dns -n kube-system
でそれを調べると、kube-dns
サービスがcorednsにリンクしていることがわかります。
Kube-dnとcorednの両方を実際に実行しているのではないかと思っています。または、そのサービスがkube-dns
ではなくcore-dns
と呼ばれるのはなぜですか?
K8S 1.12があります。 DNSポッドの説明を行います。
kubectl describe pod coredns-576cbf47c7-hhjrs --namespace = kube-system | grep -i "image:"
画像:k8s.gcr.io/coredns:1.2.2
Corednsが実行されているようです。ドキュメントによると、CoreDNSはK8S 1.11からのデフォルトです。以前のインストールでは、kube-dnsです。
画像は重要であり、残りはメタデータ(名前、ラベルなど)です。
K8Sブログによると こちら 。
Kubernetes 1.11では、CoreDNSはkube-dnsアドオンの代替として、DNSベースのサービス検出の一般的な可用性(GA)に達しました。これは、CoreDNSがさまざまなインストールツールの今後のバージョンでオプションとして提供されることを意味します。実際、kubeadmチームは、Kubernetes 1.11以降のデフォルトオプションにすることを選択しました。
また、このリンクを参照してください more info。