美文网首页云原生
microk8s(十一)k8s的DNS服务

microk8s(十一)k8s的DNS服务

作者: 印随2018 | 来源:发表于2019-07-22 15:35 被阅读0次

一、DNS服务架构演进

  • SKyDNS (k8s 1.2)
  • KubeDNS (k8s 1.4)
  • CoreDNS (k8s 1.11)

DNS服务全部在一个Pod实现,所以整个演进过程对集群都是完全无感知的。microk8s 1.14使用的是kubeDNS版本。

二、查看集群DNS服务

# kubectl get svc --all-namespaces
NAMESPACE     NAME                   TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
default       default-http-backend   ClusterIP   10.152.183.99    <none>        80/TCP              6h16m
default       kubernetes             ClusterIP   10.152.183.1     <none>        443/TCP             6h18m
default       nginx                  NodePort    10.152.183.111   <none>        80:30001/TCP        41m
kube-system   heapster               ClusterIP   10.152.183.152   <none>        80/TCP              6h16m
kube-system   kube-dns               ClusterIP   10.152.183.10    <none>        53/UDP,53/TCP       6h17m
kube-system   kubernetes-dashboard   ClusterIP   10.152.183.120   <none>        443/TCP             6h16m
kube-system   monitoring-grafana     ClusterIP   10.152.183.86    <none>        80/TCP              6h16m
kube-system   monitoring-influxdb    ClusterIP   10.152.183.145   <none>        8083/TCP,8086/TCP   6h16m

可以看到,集群DNS服务的IP地址是10.152.183.10,我们来测试一下

# nslookup nginx.default.svc.cluster.local 10.152.183.10
Server:     10.152.183.10
Address:    10.152.183.10#53

Name:   nginx.default.svc.cluster.local
Address: 10.152.183.111

# nslookup kube-dns.kube-system.svc.cluster.local 10.152.183.10
Server:     10.152.183.10
Address:    10.152.183.10#53

Name:   kube-dns.kube-system.svc.cluster.local
Address: 10.152.183.10

可以看出,DNS服务成功解析的服务名。

三、Pod的DNS配置是怎么实现的

分为两部分

  • kubelet 级别
  • pod 级别

kubelet两个关键参数

  • --cluster-domain=cluster.local
  • --cluster-dns=10.152.183.10

pod 两个关键参数

  • dnsPolicy
    • Default
    • ClusterFirst
    • ClusterFristWithHostNet
    • None
  • dnsConfig
    • nameservers
    • searches
    • options

四、直接在宿主机中进行测试

# nslookup kube-dns.kube-system.svc.cluster.local 10.152.183.10
Server:     10.152.183.10
Address:    10.152.183.10#53

Name:   kube-dns.kube-system.svc.cluster.local
Address: 10.152.183.10

# nslookup kubernetes.default.svc.cluster.local 10.152.183.10
Server:     10.152.183.10
Address:    10.152.183.10#53

Name:   kubernetes.default.svc.cluster.local
Address: 10.152.183.1

五、容器中测试DNS服务

接下来试用一个带有nslookup工具的Pod来验证DNS服务是否正常工作:

apiVersion: v1
kind: Pod
metadata:
        name: httpbin
        labels:
                app: httpbin
spec:
        containers:
                - name: httpbin
                  image: citizenstig/httpbin
                  ports:
                          - containerPort: 8000
                            hostPort: 8000

运行kubectl create -f busybox.yaml 即可完成创建。

在改容器成功启动后,通过 kubectl exec <container_id> nslookup进行测试:

# kubectl exec busybox -- nslookup nginx
Server:    10.152.183.10
Address 1: 10.152.183.10 kube-dns.kube-system.svc.cluster.local

Name:      nginx
Address 1: 10.152.183.111 nginx.default.svc.cluster.local
# kubectl exec busybox -- nslookup kubernetes
Server:    10.152.183.10
Address 1: 10.152.183.10 kube-dns.kube-system.svc.cluster.local

Name:      kubernetes
Address 1: 10.152.183.1 kubernetes.default.svc.cluster.local

😁

相关文章

  • microk8s(十一)k8s的DNS服务

    一、DNS服务架构演进 SKyDNS (k8s 1.2) KubeDNS (k8s 1.4) CoreDNS (...

  • 部署 heapster 服务

    k8s 扩展组件 kube-dns,为整个集群提供 DNS 服务 Ingress Controller,为服务提供...

  • K8S的dns服务

    K8S的dns服务 本文讲解kubernetes内的dns服务。 简介 每个集群内的service都分配得有一个d...

  • k8s系列09-服务发现与流量暴露

    本文主要介绍了K8S集群中的服务发现和流量暴露机制,包括K8S中的workload类型、service类型、DNS...

  • DNS主从、HTTPS

    (第十一周作业)1、简述DNS服务,并搭建DNS服务器,实现主从,子域授权。 DNS是“Domain Name S...

  • k8s kubeDNS

    k8s DNS 参考: dns-pod-service kubernetes-dns dns name 同一个na...

  • microk8s部署springboot微服务系列

    使用microk8s的初衷在于学习k8s上的相关部署,探讨怎么能够将已经部署在阿里云虚拟机环境的微服务迁入到k8s...

  • CoreDNS篇9-kubernetes插件

    CoreDNS作为现阶段k8s的默认DNS服务以及服务发现的重要一环,其内置的kubernetes插件可谓是举足轻...

  • service-dns

    最近业务上有一个奇葩的需求,在原生态的k8s集群中,作为k8s的服务发现组建kube-dns,扮演着service...

  • k8s-dns

    部署kubernetes dns 服务 k8s中的service分配的虚拟IP是固定的,而pod异常后新生成的po...

网友评论

    本文标题:microk8s(十一)k8s的DNS服务

    本文链接:https://www.haomeiwen.com/subject/aulwlctx.html