一、简介
service是一组网络服务,它为后端pod提供负载均衡服务。相当于前端代理功能。在k8s集群中创建一个service后集群下的每台机器都有相对应转发后端的规则。常规转发有以下两种方式:
- iptables
- ipvs
二、使用场景
- 因pod是可变对象,客户端请求时无法准确找到服务端
- 通过service进行代理能将请求转发至后端pod
- 新版k8s采用ipvs转发(其需要到达某些要求,如达不到则切换至iptables规则转发)
- 因其为四层转发,无法定义session会话等功能,不过service也提供了粘性转发策略
- service通过标签选择器自动去关联后端,至于怎么后端一上线就关联还是延迟关联与控制器策略有关(readiness状态正常规则)
三、使用配置
1.创建pod
[root@redis-cluser-01 pod]# cat nginx.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
labels:
app: xiangys0134-deployment
spec:
replicas: 3
selector:
matchLabels:
app: xiangys0134-nginx
template:
metadata:
labels:
app: xiangys0134-nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
2.创建services
[root@redis-cluser-01 services]# cat services-demo.yml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: xiangys0134-nginx
ports:
- name: http
port: 80
targetPort: 80
留言