k8s组件coredns以及dashboard

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s组件coredns以及dashboard相关的知识,希望对你有一定的参考价值。

参考技术A 我们创建的service并不存在coredns里面 而是存在了etcd中 当我们请求某个域名的时候 会把请求发给coredns coredns再把请求发给apiserver apiserver 再去etcd中拿取数据返回给dns dns返回给客户端

nginx想要请求后端的tomcat 首先nginx会把tomcat的service地址发送给coredns coredns发给apiserver apiserver去etcd中拿取对应的解析地址返回给coredns nginx从coredns中拿到tomcat的ip地址后就会把客户端请求转发给tomcat

当pod需要访问k8s集群外的域名时 pod还是会把解析请求发给coredns 我们会在coredns里面配置forward转发到我们公司内部的域名服务器(bind) 如果域名是公司内部使用的 bind就会解析此域名并把ip返回给coredns
如果此域名为外部互联网域名 我们还会在bind中配置forward转发到公网dns中进行解析

我们配置service地址段的时候 此地址段的第一个IP默认分发给apiserver 第二个IP默认分发给dns

在kubenetes的安装包中包含了许多组件的yaml模板 我们可以通过模板来安装coredns
打开github搜索kubernetes 选择右下角的release 选择k8s相应版本
https://github.com/kubernetes/kubernetes

查看_ DNS__DOMAIN _的值 此值为/etc/kubeasz/clusters/qijia01/hosts里面CLUSTER_DNS_DOMAIN的值

查看一下coredns的地址

替换coredns中的k8s.gcr.io/coredns/coredns:v1.8.0镜像为coredns/coredns:1.8.0 应为k8s.gcr.io/coredns/coredns:v1.8.0镜像是谷歌的在国外法拉取成功
完整的yaml文件,修改了dns_doman地址 dns_forward地址 coredns镜像 dns地址 内存大小

创建成功

验证域名解析成功

实时修改coredns的副本数,把replicas修改为2

可以看到第二个pod正在启动

node级别 localdns-cache (需要每个node节点都缓存一份,node过多不建议使用)
pod级别 dnsmasq (需要每个pod都缓存一份,pod过多不建议使用)
coredns 延长coredns缓存的时间(最优但是需要消耗内存)

添加一个forword,假如我有一个域名为myserver.online是公司内部使用的测试域名,当k8s中的pod访问这个后缀的域名时 我希望他把解析请求交给内部的bind服务器(172.16.16.16:53)
在核心文件Corefile最下面加上forward

删掉再重新创建 也可以直接用apply

使用nslookup测试dns解析,前提是你的 net-test1要有nslookup没有的话需要安装bind-utils

先看一下k8s的版本,然后选择兼容版本的dashboard
https://github.com/kubernetes/dashboard/releases

dashboard-2.4.0支持k8s1.21

github上面提供了dashboard的镜像还有yaml文件

创建dashboard的pod

查看dashboard的service是否创建成功

我们发现kubernetes-dashboard这个service默认使用的是 ClusterIP ,并没有把443端口给映射到宿主机,所以此端口只能在集群内部使用,我们并没有办法通过浏览器访问
解决方法:在dashboard.yaml中找到kubernetes-dashboard 这个service的配置信息并将service的类型改为nodeport,默认是ClusterIP

重新部署后发现service已经把443端口暴露出来了

3004会监听在任意一个宿主机上面(master和node) 因为这些宿主机都是通过apiserver从etcd统一拿取的数据

此时我们可以通过任意一个master或者node的ip加上30004通过https协议来访问dashboard

此时我们需要创建一个登录的账号并且授予权限

查看新建用户的token

以上是关于k8s组件coredns以及dashboard的主要内容,如果未能解决你的问题,请参考以下文章

部署coredns组件

k8s 常用组件

k8s coredns 配置上游dns

Kubernetes 0-1 K8S部署coredns

K8s之认证,授权及准入控制

k8s与dns--coredns的一些实战经验