命令记不住

登陆

k8s 的 CoreDNS

k8s的CoreDNS

1.CoreDNS简介

CoreDNS:是一个DNS服务器,Kubernetes默认采用,以Pod部署在集群中,CoreDNS服务监视Kubernetes API,为每一个Service创建DNS记录用于域名解析。

CoreDNS YAML文件:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns/coredns

ClusterIP A记录格式:..svc.cluster.local

示例:my-svc.my-namespace.svc.cluster.local

2.查看

查看sys下的服务

#kubectl -n kube-system  get pod  -o wide
NAME                                     READY   STATUS    RESTARTS   AGE     IP               NODE         NOMINATED NODE   READINESS GATES
coredns-545d6fc579-hbxmz                 1/1     Running   7          13d     10.244.200.232   cka-master   <none>           <none>
coredns-545d6fc579-s2zs2                 1/1     Running   7          13d     10.244.200.228   cka-master   <none>           <none>

解析dns

/ # nslookup web.aliang-cka.svc.cluster.local
Server:         10.96.0.10
Address:        10.96.0.10:53


*** Can't find web.aliang-cka.svc.cluster.local: No answer

/ # 

/ # cat  /etc/resolv.conf 
nameserver 10.96.0.10
search aliang-cka.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

进入到pod查看DNS

[root@cka-master /root/workspace] cka-master 
#kubectl get pods
NAME                          READY   STATUS    RESTARTS   AGE
bs                            1/1     Running   0          38s

#kubectl exec -it  bs -- sh
/ # cat   /etc/resolv.conf 
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5

解析域名

/ # nslookup nginx.default.svc.cluster.local
Server:    10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local

Name:      nginx.default.svc.cluster.local
Address 1: 10.109.215.92 nginx.default.svc.cluster.local

3.其他

创建默认的kubernetes名称空间目的

#kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
kubernetes   ClusterIP   10.96.0.1        <none>        443/TCP          16d

用于k8s的pod可以访问k8s集群,不需要走宿主机外网

#kubectl get ep
NAME         ENDPOINTS             AGE
kubernetes   192.168.122.71:6443   16d
推荐阅读