您的当前位置:首页正文

Kubernetes高可用集群部署 - 6. DNS配置

来源:要发发知识网

当我们配置好集群之后, 理论上我们的服务可以在k8s上跑了, 但是有一点, 如果我们的服务需要访问外部网络, 比如访问微信相关的接口, 就会出现域名无法解析的问题, 这个时候, 我们就需要配置DNS了.

dns配置

我们主要使用下面4个配置文件(去掉.base后缀)

kubedns-cm.yaml
kubedns-sa.yaml
kubedns-svc.yaml
kubedns-controller.yaml

可以直接使用我修改好的配置文件, 其中的镜像地址全部替换成国内的阿里云docker镜像

kubectl create -f *.yaml

如果创建成功应该出现

服务发现

如果成功配置了dns, k8s内部的服务是可以通过服务名相互调用的. 比如配置了一个服务名为my-nginx, 那么k8s内部其他项目调用它, 是可以直接将host写成 my-nginx

此时要注意, 如果要检测是否成功, 不能使用ping, 因为pod是虚拟IP. 可以在容器内部使用curl去访问my-nginx服务

namespace调用服务

很多时候, 我们需要在k8s上部署很多服务, 根据服务的不同, 自然就会对他们进行分组, 此时会用到namespace. 但是跨组进行调用会发现失败, 这个时候我们需要带上组名, 也就是namespace

curl my-nginx.dev

其中
my-nginx是服务名
dev是组名

高可用部署系列

相关服务