Service控制器

Service控制器

Service存在的意义

Service存在主要是为了解决Pod的动态变化,提供统一访问入口。

  • 防止pod失联,准备找到提供同一个服务的Pod(服务发现)
  • 定义一组Pod的访问策略(负载均衡 )

Pod与Service的关系

Service通过标签关联一组pod。
Service为一组pod提供负载均衡能力。

service创建

[root@k8s-master ~]# vim service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: test
  name: test1
spec:
  ports:
  - port: 80						# Service端口
    protocol: TCP					# 协议
    targetPort: 80					# 容器端口
  selector:
    app: test						# 关联pod的一组标签
  type: NodePort					# 服务类型

多端口Service定义

  • 对于某些服务,可能需要公开多个端口,Service也需要配置多个端口定义,通过端口名称区分。
apiVersion: v1
kind: Service
metadata:
  labels:
    app: test
  name: test
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  - name: test				# 多个service端口需要添加name来区分
    port: 9999
    protocol: TCP
    targetPort: 9999
  selector:
    app: test
  type: NodePort
[root@k8s-master ~]# kubectl get service	# 查看service是启动了2个端口
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                       AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP                       24h
test         NodePort    10.105.75.166   <none>        80:31484/TCP,9999:31097/TCP   23h

Service常用的三种类型

ClusterIP:当不指定类型时,默认分配的时ClusterIP,会分配一个稳定的IP地址,即VIP,只能在集群内部进行访问

NodePort:每个节点上启动一个端口来暴露服务,可以在集群外部进行访问。也会分配一个稳定内部集群IP地址

  • 访问方式:<任意Node节点IP>:<NodePort端口>
  • 默认NodePort端口范围:30000-32767

**LoadBalancer:与NodePort相似,在每个节点上启用一个端口来暴露服务。kubernetes会请求底层云平台(如阿里云、腾讯云、AWS等)上的负载均衡器,将每个Node([NodeIP]:[NodePort])作为后端添加进去。 **

[root@k8s-master ~]# vim service.yaml
# 指定nodeport端口,不让随机生成
apiVersion: v1
kind: Service
metadata:
  labels:
    app: test
  name: test
spec:
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80	
    nodePort: 30003			# 指定nodeport端口
  selector:
    app: test
  type: NodePort

Service代理模式

流程包流程:客户端 -》NodePort/ClusterIP(iptables/ipvs负载均衡规则)-》分布在各个节点Pod

查看负载均衡规则

  • iptables模式
    • iptables -save | grep
  • ipvs模式
    ipvsadm -L -n

Iptables和Ipvs对比

Iptables:

  • 灵活,功能强大
  • 规则遍历匹配和更新,呈线性时延

IPVS:(适合大规模的集群)

  • 工作在内核态,性能更好
  • 调度算法丰富:rr,wrr,lc,wlc,ip hash等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值