k8s中的service组件
k8s的service组件
·
背景
service组件是k8s中类似于nginx网关的入口,通过它可以访问到背后的pod提供的服务,并且自带负载均衡的功能,本文就简单看下service组件
k8s中的service组件
假设我们要配置一个tomcat的service集群,配置步骤如下
1.首先我们要创建tomcat的pod,内部打开了端口8080,映射到宿主机8090端口中,配置文件如下
kind: pod --pod类型
metadata:
labels:
name: tomcat-pod --pod的label名称
spec:
containers:
name: tomcat --pod中docker容器名称
image: tomcat --tomcat docker容器的镜像
ports:
containerport:8080 --pod中tomcat容器内部端口
hostport:8090 --pod中tomcat容器端口对应的宿主机的端口
2.创建service组件,打开端口80,通过serviceIp:80可以访问到后端的pod服务,配置文件如下:
kind: service --service组件类型
spec:
selector:
name:tomcat-pod --选择的pod的label标识
ports:
port:80 --service的访问端口
当完成以上步骤后,k8s会给service组件分配一个独一无二的ip,而且是长期有效的,通过这个serviceIp和service对外的80端口,使用方就可以访问到后端的pod服务了。
k8s实现service组件的方式是在集群的每个节点上都安装了一个kube-proxy代理,它会负责设置iptables路由规则,保证访问service的流量可以正确的代理到对应的pod上面。
使用方pod中如何使用service服务?
当使用方pod使用到对应的service时,会把service的ip和端口通过环境变量的方式设置到使用方pod的环境变量中,如此使用方pod就可以把对service的访问变成访问serviceIp:port的形式
更多推荐
已为社区贡献9条内容
所有评论(0)