Kubernetes集群Coredns组件的妙处(四十五)

Kubernetes集群Coredns组件的妙处

1.Coredns基本概念

CoreDNS项目是SkyDNS2的作者,Miek Gieben采用更模块化,可扩展的框架构建,将此DNS服务器作为Kube-DNS的替代品。CoreDNS作为CNCF中的托管的一个项目,在Kuberentes1.9版本中,使用kubeadm方式安装的集群可以通过以下命令直接安装CoreDNS。

coredns用来解析service地址,所以service的名称就可以看成一个域名,coredns会将service的名称解析成对应的service ip,生产环境通常都是由一个nginx pod负载后面所有的项目pod。

service ip有时候也许会发生改变,但是service的名称一般都是不会改变的,在写nginx负载均衡配置时,常以如下配置来完成nginx负载均衡后端pod

通过coredns解析service获取后端资源的格式:service资源名称.namespace名称:pod端口

upstream know-8080 {
    server      know-prod-8080.prod-know:8080;	#这样配置后,当请求发送到know-8080资源池后,会被转发到prod-know命名空间下的know-prod-8080这个deployment资源上
}

当然想要ping通不同namespace中的pod,也可以使用service名称.namespace名称或者deployment.namespace的方式来实现,否则不同的命名空间的pod无法通讯。

你可能感兴趣的:(kubernetes,nginx,容器)