【Kubernetes】Service学习(一)Service的基本用法

本文详细介绍了Kubernetes Service的用法,包括如何通过Service实现内部服务的自动负载均衡,创建多端口Service,以及定义外部服务。通过实战例子展示了如何创建Deployment提供Web服务,设置ClusterIP和NodePort模式的Service,并解释了负载分发策略。此外,还探讨了Service如何处理多协议和外部服务连接。
摘要由CSDN通过智能技术生成

此文为学习《Kubernetes权威指南》和阿里云原生公开课的相关笔记

学习笔记:

Pod作为K8s中调度和使用的基本单位,承担了在集群中建立容器、部署基本功能的任务,而RC/RS/Delpoymet/DaemonSet/Job/StatefulSet等类型的资源对象担当控制器,负责Pod的创建和生命周期的管理,上述的这些工作使得一个K8s集群能够有序的被部署进行设计者想要安排的任务,然而一个集群的最终目的应当是面向用户提供服务,包装容器功能为用户提供服务入口这项任务是由Service这一资源对象来完成的。

Service解决的问题有:

  • K8s应用之间互相调用较为困难,Pod生命周期较短、IP地址变化快。

  • 单单是副本控制器管理下的Pod群无法统一对外提供接口、无法实现负载均衡。

K8s中的每一个Service与微服务架构中的一个微服务所对应,每个Service定义了一个服务的访问入口地址,外部网络或者前端的应用(其他Pod)通过这个入口访问K8s集群中一组由Pod副本组成的集群实例,而Service与其后端的Pod副本则通过Label Selector来实现无缝对接,从这个视角看,Service才是K8s的真正核心,Pod的建立是为了集群具备对外提供某一Service的能力,而副本控制器则是保证Service的服务能力和服务质量始终符合预期的标准。

最终,系统将由多个提供不同业务能力而又彼此独立的微服务单元组成,服务之间通过TCP/IP进行通信,从而形成强大的分布式能力、弹性扩展能力、容错能力,程序架构也变得简单和直观。

画了一张逻辑关系图:

下面通过几个实例学习Service的基本用法:

一、通过Service实现服务提供和自动负载

1、创建一个提供Web服务的Deployment

该Deployment包含两个Tomcat容器副本,通过containerPort开放8080端口

apiVersion: apps/v1
kind: Deployment
metadata:
 name: webapp
spec:
 replicas: 2
 selector:
  matchLabels:
   app: webapp
 template:
  metadata:
   name: webapp
   labels:
    app: webapp

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值