服务创建

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

服务创建

本文通过服务创建的过程,对服务的功能、配置和操作进行介绍。


1 填写基本信息


服务名称:作为服务标识,英文字母小写,在项目命名空间下唯一。

所属应用:应用在容器服务中,可理解为对服务的分类、标签或目录,一个服务必须归属于一个应用。

服务类型:分为无状态和有状态服务。无状态服务可设置多个实例,可滚动升级、可以使用共享存储;有状态服务只有一个实例,可挂载单实例读写的存储进行数据持久化。

实例个数:无状态时,可以设置用实实例(Pod)的数量。服务创建后,可在实例伸缩功能中,设置自动伸缩。有状态服务只能设置1个实例,且无自动伸缩功能。

服务描述:对服务增加额外的描述,了解服务的功能与作用。


2 容器设置

服务的运行的实际主体是容器,因此服务的主要配置实际上是对容器的配置。



镜像地址:部署服务时需要指定运行的镜像,可以直接输入或从平台内置镜像仓库、第三方仓库中选取。


资源限制:设置容器运行的CPU、内存最大使用量。每个项目资源限制能设置的最大值,由集群管理员或拥有者在集群项目管理的配额中设置。如果节点上的资源无法满足这项配置,则实例将无法调度到该节点上,如果集群内全部节点都无法满足此配置,则实例无法被调度,会触发“实例无法调度”事件。当容器实际使用内存超过限制时,会触发OOMKill事件,容器将被杀死并重启。


数据存储:根据不同的存储类型,挂载到容器中进行使用。

  • 本地存储:将容器所在节点上的磁盘目录直接映射到容器内,容器内读写将直接操作节点目录。

  • 临时存储:随实例生命周期存在的一个临时存储,多用于同一实例中多个容器共享存储目录。

  • NFS存储:将NFS存储服务的一个指定路径映射到容器内,容器内读写将应用于NFS存储服务。

  • 配置文件:将ConfigMap以文件的形式挂载成容器内指定文件,多用于应用配置,当ConfigMap内容发生变更时,需要重启容器才能加载最新数据。同时也支持Secret作为文件进行挂载。

  • 自定义存储:通过自定义的驱动和StorageClass实现对不同存储服务提供商的支持。可以通过别名设置显示为有意义的名称。

  • 本地存储类:由gPaaS默认提供的一种自定义存储,效果类似于块存储,速度接近本地存储。


启动命令:容器允许配置启动命令和运行参数,如果未配置“容器运行命令”,容器将以镜像自身的entrypoint启动,如果配置了“容器运行命令”,容器将会执行此处配置的命令,代替镜像自身的entrypoint,如果配置了“容器运行参数”,容器会将参数追加到运行命令或镜像entrypoint后面执行。


环境变量:给容器设置环境变量,设置后,可以在容器运行环境下使用env等命令查看,或者应用程序获取。环境变量设置支持手动添加和引用配置两种方式。手动可以直接编辑添加,引用是引用配置中的配置项。如果服务所属应用也设置了配置项引用,那服务里也会显示出来。同时支持把配置中的密钥(Secret)作为环境变量,达到环境变量配置不使用明文的效果。


健康检查:提供http和tcp检测,用于判断容器中的应用程序是否启动成功,并在运行过程中进行健康检查。对一些程序(特别是java)的启动时间可能很长,或者要加载磁盘数据、依赖外部的某个模块启动完成很有用,当检测到程序响应正常时才转发流量到容器实例。另外,如果运行过程中检查失败,则重启实例(Pod)。合理设置,可使程序平滑升级,异常自动重启。

响应正常判断:http检测时,返回http状态码属于 200~399 范围;tcp检测时,能建立tcp连接成功。

启动延时:容器启动后,多久开始探测。例如启动延时设置10,集群将在容器启动 10 秒后开始健康检查。

响应超时:健康探测的超时时间,表示 HTTP 请求响应超时时间或TCP 连接超时时间。

间隔时间:健康检查的频率。例如间隔时间设置成 10,集群会在检测开始后面每隔 10秒 检查一次。

健康阀值:健康检查连续成功多少次后才认定为检测成功。

不健康阀值:健康检查连续失败多少次后才认定为检测失败。


健康检查基于Kubernetes的livenessProbe存活探测和readinessProbe就绪探测实现。

livenessProbe:探测容器是否正常运行,当探测失败,Liveness策略将会重启或者漂移重建该容器。

readinessProbe:探测容器中的应用程序是否正常运行,当探测失败,Readiness策略会不转发访问流量到容器。在容器启动时,只有探测成功,才会转发流量给容器,确保容器中的应用程序启动后,才对外提供服务。


容器服务根据最佳实践,简化了配置,目前支持同时配置livenessProbe和readinessProbe参数,当启动健康检测后,readinessProbe根据启动延时的配置时间启动探测,livenessProbe在10分钟后启动探测。


事件回调:在容器运行的特定阶段执行命令调用,来完成通知、资源回收或优雅关闭程序等操作。支持容器启动后处理(PostStart)和容器停止前处理(PreStop)。当事件发生时,提供命令回调和HttpGet回调。


高级设置:支持时区设置,镜像拉取策略等。


容器服务支持实例(Pod)多容器部署,我们可以通过“添加新容器”来添加,每个容器需要单独进行配置。


3 服务设置

服务设置是针对服务下实例(Pod)的设置,会应用到同一实例下多容器中。



自定义host:在容器/etc/hosts文件中添加主机记录。

高级设置:支持延迟时间和优雅停止时间设置。

延迟时间:在容器启动时,服务状态变为运行中的时间间隔。在容器滚动升级时,新的容器起来后,到发送停止信号给旧容器的时间间隔。

优雅停止时间:当停止服务或升级服务停止旧容器时,从发送停止信号到强制停止容器的间隔时间。在此期间程序可以获取停止信号,进行资源销毁操作。默认为30秒,容器中程序在收到停止信号时,应该在30秒内处理完,30秒一到即强制停止容器。

安全设置:支持设置容器运行用户UID和GID。设置容器内非root运行用户,指定非root运行用户的UID和GID。如果指定的UID和GID在容器中不存在,则设置无效,设置无效时会以root用户运行。


4 服务内部访问

服务内部访问,可以用于集群通信访问的地址,对应kubernetes中Service对象,设置后默认会创建与服务名同名的K8S中Service资源对象。选择协议和填写容器端口,集群内部可以通过服务名和服务端口进行访问。如果不设置服务内部访问,将无法通过服务名和服务端口进行访问。

对于使用微服务框架,有服务注册与发现,则可以不创建服务内部访问,那么在集群内是通过容器的IP和容器端口进行访问。


5 创建完成

在创建服务页面点了“创建”后,则可以在服务列表查看到刚才创建的记录。由于创建需要一个过程,比如拉取镜像需要一定时间,正常情况下,服务的状态会从启动中到运行中。如果出现什么异常,服务状态会显示非运行中状态,则需要进行查看和问题定位。


服务创建

本文通过服务创建的过程,对服务的功能、配置和操作进行介绍。1 填写基本信息服务名称:作为服务标识,英文字母小写,在项目命名空间下唯...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息