共计 1876 个字符,预计需要花费 5 分钟才能阅读完成。
虽然通过了 Service 解决了 Pod 重建后 IP 动态变化(服务发现)、负载均衡问题,但使用 Service 还是要需要知道 CLUSTER-IP,而通过 NDS 可以解决该问题;在 Kubernetes 集群中可 通过 DNS 进行 Service 服务名与 IP 进行映射,从而需要知道 Service 名称就可以访问该服务,这里将通过 kube-dns 来实现该功能;
在 https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns 中下载
kubedns-cm.yaml
kubedns-controller.yaml.sed
kubedns-sa.yaml
kubedns-svc.yaml.sed
四个文件,其中.sed 结尾的两个文件为模板文件需要重命名为:kubedns-controller.yaml、kubedns-svc.yaml,并对两个文件做以下修改:
Kubedns-controller.yaml 文件中所有 $DNS_DOMAIN 修改为:cluster.local
Kubedns-svc.yaml 文件中所有 $DNS_SERVER_IP 修改为:10.254.0.2
注意 $DNS_SERVER_IP 的 IP 必须在kube-apiserver 的配置项–service-cluster-ip-range=10.254.0.0/16 范围内;
Kube-dns 的域名格式为:<serviceName>.<namespace>.svc.<cluster_domain>
依赖
由于 kube-dns 依赖于 k8s-dns-kube-dns-amd64、k8s-dns-dnsmasq-nanny-amd64、k8s-dns-sidecar-amd64 三个镜像,而此镜像都是 google 官方镜像必须从 google 站点下载,此时可通过第三方镜像仓库代理下载再 pull 到本地然后通过 docker tag 打上官方的标签(或修改 kubedns-controller.yaml、kubedns-svc.yaml 文件中镜像的地址为第三方地址),关于第三方镜像仓库代理下载可以看这篇文件:代理下载;
安装
经过现在上诉的操作后接下来可以安装 kube-dns,执行下面几行命令;
Kubectl create -f kubedns-cm.yaml
Kubectl create -f kubedns-sa.yaml
Kubectl create -f kubedns-svc.yaml
Kubectl create -f kubedns-controller.yaml
创建完成后再 dashboard 中已可以看到 kube-dns 相关服务是否正常:
由于 node 节点需要使用 dns 进行服务解析,所以还需要修改 kubelet 服务配置项,在 kubelet 配置文件中添加上 dns 配置:–cluster-dns=10.254.0.2、–cluster-domain=cluster.local 两项配置正式上面 yaml 文件模板中所添加的值;此时 DNS 服务已安装完成;
验证 DNS
通过 pod 验证 DNS,下面通过 pod 启动一个 busybox 容器验证 dns 是否正常;
pod 的 yaml 文件内容如下:
apiVersion: v1
kind: Pod
metadata:
name: busybox
namespace: default
spec:
containers:
- image: busybox
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent
name: busybox
restartPolicy: Always
执行下面指令创建 pod:
Kubectl create -f busybox.yaml
执行 kubectl exec busybox nslookup kubernetes 命令,如显示如下图信息则说明 dns 已正常运行;
该命令为在容器 busybox 中执行 nsloolup kubernetes 查询 kubernetes 的 dns 信息;
还可以执行 kubectl exec busybox — nslookup kubernetes.default.svc.cluster.local
kubernetes.default.svc.cluster.local 为在kubedns-controller.yaml 文件中配置的信息;
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147897.htm