阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Kubernetes1.7之DNS安装

156次阅读
没有评论

共计 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 相关服务是否正常:

Kubernetes1.7 之 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 已正常运行;

Kubernetes1.7 之 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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1876字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中