k8s之服务发现
一、概述k8s中支持两种服务发现方法: 环境变量和DNS
二、环境变量
当Pod被创建的时候,k8s将为Pod设置每一个Service的相关环境变量,这些环境变量包括两种类型:
[*]k8s Service环境变量:
k8s为Service设置的环境变量形式, 包括:
[*]
[*]{SVCNAME}_SERVICE_HOST
[*]{SVCNAME}_SERVICE_PORT
[*]{SVCNAME}_SERVICE_PORT_{PORTNAME}
其中的服务名和端口名转为大写,连字符转换为下划线。
[*]Docker Link环境变量:
相当于通过 Docker 的--link 参数实现容器连接时设置的环境变量形式;
三、DNS
DNS服务发现需要k8s提供 Cluster DNS支持,Cluster DNS会监控k8s API,为每一个Service创建DNS记录用于域名解析,这样在Pod中可以通过DNS域名获取Service的访问地址。而对于一个Service, Cluster DNS会创建两条DNS记录:
[*]..
[*]..svc.
页:
[1]