一、简介

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

3.访问测试

最后修改日期: 2023年12月13日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。