服务介绍
1 概述
服务是有独立进程,由可运行的镜像部署而成,能对外提供访问及业务处理。服务可以是无状态或是有状态(需要存储数据持久化),可以由一个容器或者多个容器组成,同一个服务也可以由不同版本的镜像的容器组成(蓝绿发布的场景)。
2 基本概念
服务:服务是容器服务对于kubernetes中Workload、Service、HPA等资源对象的抽象和封装,是一个组合的概念,并不完全等于Workload或Service,包括无状态服务和有状态服务。
无状态服务(deployment):可以运行多个容器实例,使服务支持水平扩展和自动伸缩的功能,保证服务的可用性。为了能在多实例中共享数据,容器服务也提供挂载NFS等存储的功能。
有状态服务(statefulset):可以挂载数据盘(块存储),实现数据持久化,有状态服务只能运行一个容器实例。
实例(pod):k8s调度的最小单元,代表一组完成服务功能的、共享网络、存储等资源容器的集合。每个服务可以包含多个实例,又叫多个副本,每个实例的配置根据服务配置模板自动产生,相当于拷贝。
容器(container):由容器运行时服务模拟出来的,环境隔离的,最小运行单元进程。每个实例(pod)可以包含多个不同的容器。
镜像(image):容器运行需要以一个镜像为基础,镜像包含服务进程运行时环境以及容器进程本身。
yaml:k8s对象的描述文本格式。
服务事件:k8s会将服务、实例、容器和其他资源相关的事件记录下来。
主机/节点:容器的运行依赖主机/节点,容器必定会存在于某台主机/节点之上,当容器出现问题时,登录该主机/节点能获得最准确的信息。
3 服务基本操作
在服务列表页,显示的是容器服务中可以管理的服务,同时提供了服务各种操作功能。
新建服务:通过创建服务页面引导,创建相应的服务,其中包含一组kubernetes资源对象。具体操作以及相关设置请参考文章服务创建。
启动:启动停止的服务。
停止:停止运行中的,或正在启动中的服务。
重启:对运行中或启动中的服务进行重启。
删除:将服务进行删除,删除后不能恢复。
同步:将k8s中未被容器服务管理的工作负载(deployment/statefulset),同步到容器服务进行管理。比如托管已经存在的集群,命令空间已经有工作负载,或者通过命令行创建的工作负载,都需要同步到容器服务。服务需要同步到应用下,没有应用的时候不能同步服务。
编辑:对服务的配置进行变更,编辑保存后,已经运行的服务会立即进行重启生效。
升级:通过选择不同的镜像,和升级策略,进行服务快速版本更新。
复制:从现有服务中复制并创建一个新服务,新服务配置与被复制服务一致。
实例伸缩:可以指定实例运行的副本数量,也可以设置自动伸缩。当自动伸缩时,需要指定最小和最大副本数,CPU或内存的伸缩阈值。服务下所有实例CPU或内存平均利用率达到设置值,在1分钟内会增加1个副本,当整体小于设置阈值,5分钟左右会减少1个副本。增加副本或减少副本的时间或策略,是由k8s控制器参数控制的。
监控:跳转到监控服务的服务监控页面,我们可以在监控服务查看服务历史运行记录。
回退:可以快速回退到上一个镜像版本部署的服务。目前只支持回退到上一个版本,不支持连接回退到更早之前的版本。回退适合无状态服务,有状态服务可能会因为不同版本对持久化数据的处理不一样导致程序无法启动或数据错误。
禁用:当批量操作时,忽略禁用的服务。比如一个服务暂时不使用,又不想删除先,可以设置为禁用,当批量选择或重启应用等批量操作时,会忽略这个禁用的服务。
yaml编辑:提供yaml格式的服务编辑方式,编辑保存后,服务会立即重启生效。yaml编辑需要比较注意格式,可能因为格式不正确导致服务起不来,或者导致所编辑对象的配置丢失。建议在一些参数界面无法配置时,使用yaml编辑功用。
4 服务状态
服务在创建到被删除后具有如下状态:
启动中:当服务创建、升级或启动操作,服务未准备就绪阶段。当服务异常并不断重启,也会一直显示为启动状态,此时可以查看容器实例以及容器事件进一步确认异常原因。
运行中:服务启动成功并准备就绪,可对外提供服务 。
已停止:把服务停止后的状态,此时不占用CPU和内存资源 。
正在启动:服务实例未达到就绪状态或实例个数未达到指定个数。
启动失败:当启动失败时,显示该状态。此时可以查看实例状态以及实例事件进一步确认失败原因。
正在停止:服务正在停止实例等相关资源。
休眠中:当副本数量为0时的状态。
5 服务详情查看
当服务部署好后,可以查看服务部署信息、实例和事件等。当服务运行异常时,通过查看这些信息,能够有效帮助我们排查和解决问题。
基本信息:显示服务的基本属性,状态等。当服务运行异常时,服务状态会显示异常信息,帮助我们定位问题。
实例(Pod):服务下运行的实例,可以查看实例的运行状态,查看控制台日志、连接容器执行linux命令等。多数情况下,服务运行的异常,都体现在实例的异常,因此我们要熟悉查看和分析实例的方法,具体可参考服务实例文章。
服务事件:从服务层面汇总了kubernetes多个资源对象的事件信息,更好地帮助我们定位排查问题。服务事件默认可查询1小时事件,具体由K8S参数控制。
服务介绍
本文2024-09-23 01:10:15发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144223.html