Kubernetes(十四)部署K8S内部DNS服务
用途:为service提供dns解析,部署后可以通过service名称访问该service,service会转发到pod,如果不部署dns,可以通过service的IP访问,但是耦合性较高;
查看service
kubectl get svc
输出以下内容:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 41h
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 41h
一、安装dns
去git获取yaml
or
使用我们提供的
kubectl apply -f coredns.yaml
注意:clusterIP要和node节点的cat /opt/kubernetes/cfg/kubelet.conf 的clusterDNS一致,否则pod会解析失败
二、查看dns
kubectl get pods -n kube-system
输出以下内容:
NAME READY STATUS RESTARTS AGE
coredns-6d8cfdd59d-mw47j 1/1 Running 0 5m45s
kube-flannel-ds-amd64-q8rmk 1/1 Running 0 18h
kube-flannel-ds-amd64-zq7hc 1/1 Running 0 18h
coredns-6d8cfdd59d-mw47j 1/1 Running 0 5m45s
kube-flannel-ds-amd64-q8rmk 1/1 Running 0 18h
kube-flannel-ds-amd64-zq7hc 1/1 Running 0 18h
三、测试DNS可用性
安装busybox工具
kubectl apply -f bs.yaml
查看我们启动的pod
kubectl get pods
进入容器内部
kubectl exec -t busybox sh
测试
ping kubernetes