十三、kubernetes 核心技术Service

1. service存在意义

Service是Kubernetes里最核心的资源对象之一,Service定义了一个服务的访问入口地址,前端的应用(Pod)通过这个入口地址访问其背后的一组由Pod副本组成的集群实力。 Service与其后端Pod副本集群之间则是通过Label Selector来实现"无缝对接"。而RC的作用实际上是保证Service 的服务能力和服务质量处于预期的标准。
在这里插入图片描述

  • 防止Pod失联(服务发现)
    在这里插入图片描述

  • 定义一组Pod访问策略(负载均衡)

在这里插入图片描述

2. Pod和Service关系(虚拟IP)

根据lable和selector标签建立关联的

# service.yaml
selector:
  app: nginx
  
# Pod.yaml
lables:
  app: nginx 

3. 常用Service类型

类型说明
ExternalName用于将集群外部的服务引入到集群内部,在集群内部可直接访问来获取服务
ClusterIP用于为集群内Pod访问时,提供的固定访问地址,默认是自动分配地址,可使用ClusterIP关键字指定固定IP.
NodePort用于为集群外部访问Service后面Pod提供访问接入端口.
LoadBalancer用于当K8s运行在一个云环境内时,若该云环境支持LBaaS,则此类型可自动触发创建
一个软件负载均衡器用于对Service做负载均衡调度

3.1 ClusterIP(集群内部使用)

apiVersion: v1
kind: Service
metadata:
  labels:
    app: web01
  name: web01
spec:
  type: ClusterIP
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 8443
    protocol: TCP  #仅支持TCP和UDP,不写默认TCP
    targetPort: 8443
  selector:
    app: web01
status:
  loadBalancer: {}
参数解释
Portport表示:service暴露在cluster ip(Seriver ip )上的端口,:port 是提供给集群内部客户访问service的入口。
NodePortnodePort是kubernetes提供给集群外部客户访问service入口的一种方式(另一种方式是LoadBalancer,:nodePort 是提供给集群外部客户访问service的入口。
targetPorttargetPort很好理解,targetPort是pod上的端口,从port和nodePort上到来的数据最终经过kube-proxy流入到后端pod的targetPort上进入容器。

3.2 NodePort(对外访问应用使用)

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: web01
  name: web01-nodeport
spec:
  type: NodePort
  ports:
  - name: aaaa
    port: 80
    nodePort: 23232 # 指定对外提供端口, 不加则随机分配
    targetPort: 80
  - name: bbb
    port: 9090
    targetPort: 9090
  selector:
    app: web01
status:
  loadBalancer: {}

3.3 LoadBalancer(对外访问应用使用,公有云)

LadBlancer Service 是Kubernetes深度结合云平台的一个组件;当使用LoadBlancer Service 暴露服务时,实际上是通过向底层云平台申请创建一个负载均衡器来向外暴露服务;目前LoadBlancer Service支持的云平台已经相对完善,比如国外的GCE、DigitalOcean,国内的阿里云,私有云(Openstack)等等,由于LoadBlancer Service深度结合了云平台,所以只能在一些云平台上使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值