Kubernetes集群支持IP地址以及DNS访问Pod或者Service。
Service域名解析 Service域名解析包括A/AAAA记录以及SRV记录 A/AAAA记录 域名:my-svc.my-namespace.svc.cluster-domain.example 该域名对应的service名称是my-svc、service的命名空间是my-namespace、service对应的集群域名后缀是svc.cluster-domain.example SRV记录 域名:_port-name._port-protocol.my-svc.my-namespace.svc.cluster-domain.example 该域名对应的端口号名称是_port-name、端口号支持的协议是_port-protocol |
Pod域名解析 Pod域名解析包括A/AAAA记录 A/AAAA记录 域名:pod-ip-address.my-namespace.pod.cluster-domain.example 该域名对应的pod的ip地址是pod-ip-address、pod的命名空间是my-namespace、pod对应的集群域名后缀是pod.cluster-domain.example 域名:172-17-0-3.default.pod.cluster.local 该域名对应的pod的ip地址是172.17.0.3、pod的命名空间是default 域名:pod-ip-address.service-name.my-namespace.svc.cluster-domain.example 该pod域名是指任何一个pod被一个service绑定之后的域名
|
如上所示,名称是busybox-subdomain的service绑定了两个名称是busybox1、busybox2的pod,则busybox-subdomain的service的域名是busybox-subdomain.my-namespace.svc.cluster-domain.example、busybox1的pod的域名是busybox-1.busybox-subdomain.my-namespace.svc.cluster-domain.example、busybox2的pod的域名是busybox-2.busybox-subdomain.my-namespace.svc.cluster-domain.example
Default dns的默认策略,其使用Kubernetes集群中的pod运行的node服务器节点的域名解析 |
ClusterFirst 该dns策略,其优先使用Kubernetes集群的后缀域名解析,不匹配Kubernetes集群后缀的域名由上一级的dns负责解析 |
ClusterFirstWithHostNet 该dns策略,其使用主机网络运行pod时设置的dns策略 |
None 不使用dns策略 |
如上所示,hostNetwork
设置为true时的dns策略是ClusterFirstWithHostNet
nameservers 在pod中直接设置指定dns域名解析服务器的地址 |
searches 在pod中直接设置指定可以解析该pod的域名地址 |
如上所示,直接设置指定pod对应的dns域名解析服务器的地址以及可以解析当前pod的域名