栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Service控制器

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Service控制器

文章目录
  • Service控制器
    • Service存在的意义
    • Pod与Service的关系
    • service创建
    • 多端口Service定义
  • Service常用的三种类型
  • Service代理模式
    • 查看负载均衡规则
  • Iptables和Ipvs对比

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               443/TCP                       24h
test         NodePort    10.105.75.166           80:31484/TCP,9999:31097/TCP   23h
Service常用的三种类型

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

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

  • 访问方式:<任意Node节点IP>:
  • 默认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等
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881319.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号