Coredns安相对于1.2.6装部署

  

CoreDNS简介

  

CoreDNS其实就是一个DNS服务,而DNS作为一种常见的服务发现手段,所以很多开源项目以及工程师都会使用CoreDNS为集群提供服务发现的功能,Kubernetes就在集群中使用CoreDNS解决服务发现的问题。

  

如果想要在分布式系统实现服务发现的功能,CoreDNS其实是一个非常好的选择,CoreDNS作为一个已经进入CNCF并且在Kubernetes中作为DNS服务使用的应用,其本身的稳定性和可用性已经得到了证明,同时它基于插件实现的方式非常轻量并且易于使用,插件链的使用也使得第三方插件的定义变得非常的方便。

  

Coredns架构

  
 <代码>整个CoreDNS服务都建立在一个使用去编写的HTTP/2 Web服务器盒。 
  

集群信息介绍

  
Kubernetes
  
 <代码> v1.13  
  
k8s-master
  
 <代码> 172.20.101.157
  172.20.101.165
  172.20.101.164  
  
CLUSTER_CIDR
  
 <代码> 10.254.0.0/16  
  
CLUSTER_DNS
  
 <代码> 10.254.0.10  
  

Coredns项目下载

  
 <代码>下载地址1:
  
  wget https://github.com/coredns/deployment/archive/master.zip
  解压缩master.zip
  
  下载地址2:
  git克隆https://github.com/coredns/deployment.git  
  

安装部署

  

确认是否存在已运行dns服务

  
 <代码> kubectl吊舱- o - n=kube-system宽
  
  #删除命令
  kubectl删除——名称空间=kube-system部署* * * * dns  
  
安装主目录
  
 <代码> cd/workspace/ 
  
下载
  
 <代码> git克隆https://github.com/coredns/deployment.git  
  
安装目录
  
 <代码> cd/workspace/部署/kubernetes  
  
查看项目文件
  
 <代码> [root@node01 kubernetes] #噢
  
  CoreDNS-k8s_version.md
  coredns.yaml.sed
  deploy.sh
  README.md
  rollback.sh
  Scaling_CoreDNS.md
  Upgrading_CoreDNS.md  
  
重要文件介绍h5> 部署。上海是一个用于在已经运行kube-dns的集群中生成运行CoreDNS部署文件(清单)的工具脚本。它使用coredns.yaml。sed文件作为模板,创建一个ConfigMap和CoreDNS的部署,然后更新集群中已有的kube-dns服务的选择器使用CoreDNS的部署。重用已有的服务并不会在服务的请求中发生冲突。

  

部署脚本使用方法

  
 <代码>用法:/部署。sh (- r REVERSE-CIDR][我DNS-IP] [- d集群域][- t YAML-TEMPLATE]
  
  - r:定义一个给定CIDR反向区域。你可能specifcy这个选项
  比
  
  #添加内容如下
  ——cluster-dns=10.254.0.10 \
  ——集群域=cluster.local。 
  

#或者添加配置到/etc/systemd/system/kube-kubelet.service

  
 <代码> # # #重启kubelet服务
   
  
 <代码> systemctl daemon-reload
  systemctl启用kubelet
  systemctl重启kubelet
  systemctl地位kubelet - l  
  

启动nginx测试服务

  
 <代码> kubectl运行nginx——副本=2图像=nginx:高山——端口=80
  kubectl公开部署nginx - type=NodePort - name=example-service-nodeport
  kubectl公开部署nginx - name=示例服务 
  

启动一个工具镜像

  
 <代码> kubectl运行curl——图像=径向/busyboxplus: curl
   
  

验证服务启动成功

  
 <代码> kubectl得到豆荚- o宽
  姓名就绪状态重启年龄IP节点节点准备盖茨提名
  curl - 66959 - f6557 - 879 c6 1/1运行0 4 m52 10.254.87.4 172.20.101.160 & lt; none>& lt; none>
  nginx - 665764 - c8c9 dgjgv 1/1运行0 7 m19s 10.254.100.2 172.20.101.166 & lt; none>& lt; none>
  nginx - 665764 - c8c9 z9rrm 1/1运行0 7 m19s 10.254.87.2 172.20.101.160 & lt; none>& lt; none>  
  
 <代码> [root@node01 kubernetes) #
  kubectl得到svc - o宽
  名字类型集群ip外部ip端口(S)年龄选择器
  示例服务ClusterIP 10.254.210.43 & lt; none>80/TCP 9 s运行=nginx
  example-service-nodeport NodePort 10.254.204.43 & lt; none>80:36136/TCP 14 s=运行nginx
  kubernetes ClusterIP 10.254.0.1 & lt; none>443/TCP 105 & lt; none>  
  

登陆curl镜像(节点节点执行)

  

[root@node04 ~] #码头工人exec - f18900873efe sh

  

验证外网解析

  
 <代码> ping qq.com
  
  PING qq.com(111.161.64.48): 56字节的数据
  64个字节从111.161.64.48:seq=0 ttl=47时间=6.331 ms
  从111.161.64.48 64字节:seq=1 ttl=47次=6.293 

Coredns安相对于1.2.6装部署