文档首页/ 应用管理与运维平台 ServiceStage/ 用户指南/ 组件管理/ 创建并部署组件/ 使用容器部署方式基于界面配置创建并部署组件
更新时间:2024-09-27 GMT+08:00

使用容器部署方式基于界面配置创建并部署组件

本章节指导您使用容器部署方式基于界面配置创建并部署组件。在ServiceStage控制台界面指引下,您可以方便快捷的完成容器环境下组件的创建和部署。

前提条件

  1. 只能在应用下新增组件,请先创建应用,请参考创建应用
  2. 组件需要部署在指定环境下,请先创建Kubernetes类型环境并纳管资源,请参考环境管理
  3. 需要根据组织管理组件构建生成的镜像,请先创建组织,请参考创建组织
  4. 需要根据命名空间隔离构建数据和组件实例,请先创建命名空间,请参考创建命名空间
  5. 如果您基于“源码仓库”创建组件,那么您首先需要创建仓库授权,请参考仓库授权
  6. 如果您基于软件包创建组件,那么您首先需要将软件包上传至SWR软件仓库或者OBS对象存储中。
    • 将软件包上传至SWR软件仓库,请参考上传软件包
    • 将软件包上传至OBS对象存储中,请参考上传对象

    如果上传软件包失败,请参考如何解决上传软件包失败的问题?

  7. 如果您基于镜像包创建组件,请参考组件来源说明准备镜像。

使用容器部署方式基于界面配置创建并部署组件

  1. 登录ServiceStage控制台。
  2. 选择以下任意方式进入“创建组件”页面:

    • 选择组件管理 > 新增组件
    • “应用管理”页面,选择待创建部署组件的应用,单击“操作”列的“新增组件”
    • “应用管理”页面,单击待创建部署组件的应用名称,在“应用概览”页面,单击“新增组件”

  3. “基本信息”区域,参考下表设置组件基本信息,其中带“*”标志的参数为必填参数。

    参数

    说明

    *组件名称

    组件的名称,组件创建并部署后不支持修改。

    长度2到64个字符,可以包含英文字母、数字、下划线(_)或中划线(-),以英文字母开头、英文字母或者数字结尾。

    • 不同应用下的同名组件可以部署在同一个环境下。
    • 同一个应用下的同名组件可以部署在不同环境下。

    *组件版本

    组件版本号,支持自动生成和自定义版本号。

    • 自动生成版本号:单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号,格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。
    • 自定义版本号:输入格式为A.B.C或者A.B.C.D,A、B、C、D为自然数。例如,1.0.0或者1.0.0.0。

    *所属环境

    选择“Kubernetes”或者“虚拟机+Kubernetes”类型的组件部署环境。

    环境类型,请参考环境概述

    说明:

    如果之前版本的环境纳管了CCE集群和虚拟机资源,升级到当前版本后,该环境的类型为“虚拟机+Kubernetes”

    *部署方式

    选择组件的部署方式为“容器部署”

    当选择的“所属环境”“虚拟机+Kubernetes”类型时需设置。组件部署方式,请参考组件部署方式说明

    *所属应用

    组件所属应用。

    *工作负载类型

    工作负载是在Kubernetes上运行的应用程序。无论您的工作负载是单个组件还是协同工作的多个组件,您都可以在Kubernetes上的一组Pod中运行它。在Kubernetes中,工作负载是对一组Pod的抽象模型,用于描述业务的运行载体。您可以根据实际业务需要选择以下任意一种工作负载类型:

    • 无状态:工作负载完全独立、功能相同,支持弹性伸缩、滚动升级。典型场景如nginx。
    • 有状态:工作负载具有持久化的存储,支持有序的部署、伸缩删除。典型场景如mysql-HA、etcd。

    *工作负载名称

    工作负载名称默认由系统自动生成,也支持自定义。

    工作负载默认名称由您输入的“组件名称”、选择的“所属环境”名称以及系统生成的6位随机字符串组成,长度不超过52个字符。

    • 当您输入的“组件名称”长度不超过45个字符时,工作负载默认名称为:
      组件名称全部字符-所属环境名称全部或部分字符-系统生成的6位随机字符串

      其中,工作负载默认名称中的下划线(_)会被替换为中划线(-),名称中的大写字母会被转换为对应的小写字母。

      例如,输入的组件名称为Com_calc,选择的所属环境名称为env-cce,则工作负载默认名称示例如下:

      com-calc-env-cce-1uw8g0
    • 当您输入的“组件名称”长度超过了45个字符时,工作负载默认名称为:
      组件名称的前45个字符-系统生成的6位随机字符串

      其中,工作负载默认名称中的下划线(_)会被替换为中划线(-),名称中的大写字母会被转换为对应的小写字母。

      例如,输入的组件名称为C_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,则工作负载默认名称示例如下:

      c-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-1uw8g0

    您也可以自定义工作负载名称。

    • “工作负载类型”选择“有状态”:请输入长度为1到52个字符的字符串,可以包含小写英文字母、数字或中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。
    • “工作负载类型”选择“无状态”:请输入长度为1到63个字符的字符串,可以包含小写英文字母、数字或中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。

    组件创建并部署完成后,不再支持修改工作负载的名称。

    描述

    组件描述信息。

    1. 单击,在编辑栏输入不超过128个字符的组件描述信息。
    2. 单击,完成组件描述信息设置。
    图1 设置组件基本信息

  4. “组件包”区域,参考下表设置组件包参数,其中带“*”标志的参数为必填参数。

    参数

    说明

    *技术栈

    1. 根据组件部署方式,参考表1,选择组件技术栈类型。
    2. “名称”下拉列表,选择技术栈版本。
    3. 设置“JVM”参数,用于配置Java代码运行时的内存参数大小。技术栈类型选择Java、Tomcat时可设置。

      单击“技术栈配置”,输入JVM参数,如-Xms256m -Xmx1024m,多个参数以空格间隔,不填则为空。

    4. 设置“Tomcat配置”参数,用于配置Tomcat请求路径、端口号等参数。技术栈类型选择Tomcat时可设置。
      1. 单击“技术栈配置”,勾选“Tomcat配置”,弹出“Tomcat配置”对话框。
      2. 单击“使用示例模板”,根据业务要求编辑模板文件。
        说明:

        Tomcat配置,使用默认server.xml配置,上下文路径是"/",没有指定应用路径。

        如需自定义应用路径,请参考定制Tomcat Context path

      3. 单击“确定”

    *源码/软件包

    • 选择“源码仓库”,参考仓库授权创建授权,设置代码来源。
    • 选择软件包(Jar包、War包、Zip包),则组件来源支持的软件包类型由您选择的技术栈类型决定,具体情况请参考表1

    *上传方式

    组件来源为软件包或镜像包时,需选择已上传的软件包或镜像包,上传方式请参考组件来源说明

    说明:
    • 组件来源为镜像包时,勾选“启用多容器”,可支持多容器部署。用于构建复杂的应用系统,其中不同的服务或组件被封装在不同的容器中。
    • 单击已选择的镜像包卡片右上角的,可修改镜像包来源或者删除该镜像包。

    *容器名称

    组件部署方式为容器部署时,需设置此参数。

    • 容器名称默认和3设置的“工作负载名称”的值一致。您也可以自定义容器名称:长度1到63个字符,可以包含小写英文字母、数字或中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。
    • 如果“上传方式”选择的组件来源为镜像包且启用了多容器部署时,需为新增容器自定义容器名称:长度为1到63个字符,可以包含小写英文字母、数字或中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。

  5. “构建”区域,参考下表设置构建参数,其中带“*”标志的参数为必填参数。

    4选择的组件的技术栈类型为Java、Tomcat、Node.js、Python、Php时需设置。

    参数

    说明

    *编译命令

    组件来源是“源码仓库”时,根据业务需要设置“编译命令”

    • 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法编译,如Java语言的mvn clean package
    • 使用自定义命令:根据所选语言自定义编译命令,或修改build.sh文件后选择使用默认命令或脚本。
      须知:
      • 选择“使用自定义命令”时,请在echo、cat、debug命令中慎用敏感信息或者进行敏感信息加密,以免造成敏感信息泄露。
      • 在项目子目录下执行编译命令,需先进入项目子目录,再执行其余脚本命令。例如:

        cd ./weather/

        mvn clean package

    *Dockerfile地址

    组件来源是“源码仓库”时,根据业务需要设置“Dockerfile地址”

    “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。

    如果未指定“Dockerfile地址”,默认查找项目根目录下的Dockerfile;如果项目根目录下也没有Dockerfile文件,则根据选定的运行环境自动生成Dockerfile。

    *组织

    组织用于管理组件构建生成的镜像。

    *构建环境

    选择用于构建镜像的环境类型。执行构建的环境,必须是Kubernetes环境,且能够访问Internet。

    推荐您选择“使用当前环境构建”。如果当前环境的CCE集群不能访问Internet,且您单独规划了构建环境,则可选择“使用独立环境构建”

    • 使用独立环境构建:可使用单独的构建环境进行镜像构建。独立构建环境CCE集群和当前组件部署环境CCE集群的CPU架构必须保持一致,否则会导致组件部署失败。
    • 使用当前环境构建:使用组件所属的部署环境进行镜像构建。当前环境CCE集群的master节点和node节点的CPU架构必须保持一致,否则会导致组件构建失败。

    *选择环境

    • “构建环境”选择“使用独立环境构建”时,可选择使用不同于组件所属的独立构建环境。
    • “构建环境”选择“使用当前环境构建”时,固定选择使用组件所属的部署环境。

    *命名空间

    选择执行构建的环境下CCE集群命名空间,用于隔离构建数据。关于命名空间,请参考管理命名空间

    过滤节点标签

    如果存在以下情况,您需要通过设置过滤节点标签将构建任务下发到绑定了EIP的固定节点上,保证组件构建、部署成功。

    • “构建环境”选择“使用独立环境构建”时,需要设置过滤节点标签,将构建任务下发到独立构建环境下的node节点,保证该节点和当前组件部署环境下node节点CPU架构一致。
    • “构建环境”选择“使用当前环境构建”时,如果环境下有node节点和master节点CPU架构不一致,需要设置过滤节点标签,将构建任务下发到和master节点CPU架构一致的node节点上。

    新增过滤标签,请参考添加节点标签

    YAML模式

    选择不开启,使用界面配置来部署组件。

    图2 设置构建参数

  6. 单击“下一步”
  7. “资源”区域,请参考下表设置容器部署组件所需资源,其中带“*”标志的参数为必填参数。

    参数

    说明

    *资源需求

    您可以根据需要自定义“CPU配额”“内存配额”,设置组件运行可以使用的最大/最小CPU核数(Core)和内存数量(GiB),从而选择性地为每个组件的实例设定所需要的资源数量。

    当您为组件实例指定了资源“申请”时,CCE就利用该信息决定将组件实例调度到哪个节点上;当您为组件实例指定了资源“限制”时,CCE就可以确保运行的组件实例占用的资源不会超出所设限制。CCE还会为组件实例预留所申请数量的系统资源。申请值和限制值的配置说明及建议,请参考资源限制指南

    如需修改,请勾选待修改项后输入新的配置值。不勾选表示不限制。

    说明:

    如果4“上传方式”选择的组件来源为镜像包且启用了多容器部署时,请根据您的实际业务需要为各容器实例分别设置此参数。

    *实例数

    设置运行在环境下的组件实例数,取值范围为[1,200]。

    *命名空间

    选择组件实例所在容器命名空间。

    图3 设置容器部署组件所需资源

  8. “实例间发现服务配置”区域,参考下表设置组件的服务(Service)名称及端口,其中带“*”标志的参数为必填参数。

    3选择的“工作负载类型”“有状态”时,需执行本操作,用于解决有状态负载(StatefulSet)内Pod互相访问的问题,给每个Pod提供固定的访问域名。

    参数

    说明

    *Service名称

    输入应用发布的可被外部访问的名称。

    Service是将运行在一组Pods上的应用程序公开为网络服务的抽象方法。

    说明:

    部署在同一个CCE下的组件,Service名称必须唯一,否则会导致组件部署失败。

    *端口配置

    设置以下端口配置参数。

    • 端口名称:Pod间通信的端口名称。
    • 容器端口:容器中应用启动监听的端口。
    • 访问端口:访问Service的端口。

    如需增加端口配置,请单击“新增端口配置”

  9. “访问方式”区域,开启组件公网访问。

    开启组件公网访问后,支持通过绑定了弹性公网IP的ELB以公网域名方式访问组件,以使用组件提供的服务。
    • 如果组件创建并部署成功后通过ELB灰度发布方式进行升级维护,需在本操作步骤开启组件公网访问。ELB灰度发布,请参考灰度发布方式升级组件版本配置
    • 开启了公网访问的组件创建并部署完成后,您可以参考修改组件访问域名修改已设置的组件访问域名。
    • 默认不开启组件公网访问。组件创建并部署完成后,您也可以设置组件访问方式,请参考设置组件访问方式
    单击,开启公网访问后,设置以下参数:
    1. 设置“公网ELB”
      • 选择所选环境中已经存在的绑定了弹性公网IP的弹性负载均衡(ELB)资源。
      • 若不存在,请单击“去所选的环境里添加”,在环境编辑页面,单击“新增可选资源”,为该环境添加已创建的弹性负载均衡(ELB)资源。
      • 若需创建弹性负载均衡(ELB)资源,请参考下表根据实际应用场景进行创建。

        使用场景

        参考章节

        使用域名访问应用

        ELB灰度发布

        参考购买独享型负载均衡器创建“规格”为“应用型”的ELB

        • 弹性负载均衡ELB需已绑定弹性公网IP,且必须与当前组件部署环境下纳管的计算资源处于相同的虚拟私有云VPC及其子网下。
        • 组件在不同部署环境下需绑定不同ELB,避免路由错误。
    2. 设置“对外协议”
      • 选择“HTTP”,会存在安全风险,建议优先选择使用安全的“HTTPS”方式。
      • 选择“HTTPS”,单击“使用已有”选择已经创建的证书。

        若证书不存在,请单击“新创建”创建新的服务器证书。创建服务器证书请参考创建证书

    3. 设置“域名”
      • 选择“自动生成”,自动生成的域名仅有7天有效期。
      • 选择“绑定域名”,在输入框中输入自定义域名。
    4. 设置“监听端口”

      输入应用进程的监听端口号。

    图4 设置公网访问

  10. “时区”区域,设置容器“时区”

    容器的时区,默认和容器节点所在区域时区一致。

  11. 设置“云服务配置”

    操作类型

    操作名称

    操作说明

    微服务引擎

    绑定微服务引擎

    微服务引擎是ServiceStage针对微服务解决方案提供的一站式管理平台。将微服务组件接入微服务引擎,使用微服务引擎的服务注册、服务治理、配置管理等能力,使您专注于业务开发,提升产品交付效率和质量。

    选择云服务配置 > 微服务引擎,绑定微服务引擎,请参考绑定微服务引擎

    说明:
    • 如果4“上传方式”选择的组件来源为镜像包且启用了多容器部署,则不支持绑定微服务引擎。
    • 如果需要通过微服务灰度发布方式升级维护组件,需在本操作步骤绑定微服务引擎。微服务灰度发布,请参考灰度发布方式升级组件版本配置

    分布式缓存

    绑定分布式缓存

    在分布式系统中,通过分布式缓存服务,提供可扩展和可靠的用户会话管理。

    选择云服务配置 > 分布式缓存,绑定分布式缓存,请参考绑定分布式缓存

    云数据库

    绑定云数据库

    应用数据持久化存储,需要用到云数据库。

    选择云服务配置 > 云数据库,绑定云数据库,请参考绑定云数据库

  12. 设置“容器配置”

    如果4“上传方式”选择的组件来源为镜像包且启用了多容器部署时,请根据您的实际业务需要参考下表为各容器实例分别设置参数。

    操作类型

    操作名称

    操作说明

    环境变量

    设置环境变量

    环境变量是应用运行环境中设定的一个变量,可以在组件部署后修改,为应用提供极大的灵活性。组件下设置的环境变量,属于局部环境变量,仅对该组件起作用。

    选择容器配置 > 环境变量,设置“环境变量”,请参考设置组件环境变量

    启动命令

    设置启动命令

    设置“启动命令”后,容器将会以该启动命令启动。

    选择容器配置 > 启动命令,设置“启动命令”,请参考设置组件启动命令和生命周期

    数据存储

    设置数据存储

    存储是为应用提供存储的组件,支持多种类型的存储,同一个组件可以使用任意数量的存储。

    选择容器配置 > 数据存储,设置“数据存储”,请参考设置数据存储

    生命周期

    设置生命周期

    容器部署的组件,ServiceStage提供了回调函数,在应用的生命周期的特定阶段执行调用,比如组件在停止前希望执行某项操作,就可以注册相应的钩子函数。

    选择容器配置 > 生命周期,设置“生命周期”,请参考设置组件启动命令和生命周期

    日志采集

    设置日志采集

    容器部署的组件,ServiceStage支持配置应用日志策略,您可以在应用运维管理AOM中查看相关运行日志。在部署组件过程中或者组件已经部署,都可以配置日志策略。如果不做任何配置,则系统默认会采集应用标准输出日志。

    选择容器配置 > 日志采集,设置“日志采集”,请参考设置应用日志策略

    健康检查

    设置健康检查

    健康检查是指容器部署的组件在运行过程中,根据需要,定时检查应用健康状况。

    选择容器配置 > 健康检查,设置“健康检查”,请参考设置健康检查

  13. 设置“高级配置”

    操作类型

    操作名称

    操作说明

    调度策略

    设置调度策略

    容器部署的组件,根据组件的部署特性,ServiceStage把组件拆解成最小的部署实例。应用调度器实时监控应用的实例信息,当发现有新的pod产生需要调度时就会对集群中所有的剩余资源(计算、存储、网络)进行计算,最后得出最适合的调度目标节点。

    选择高级配置 > 调度策略,设置“调度策略”,请参考设置组件实例调度策略

    容忍策略

    设置容忍策略

    容器部署的组件,容忍度(Toleration)允许调度器将Pod调度至带有对应污点的节点上。 容忍度需要和节点污点相互配合,每个节点上都可以拥有一个或多个污点,对于未设置容忍度的Pod,调度器会根据节点上的污点效果进行选择性调度,可以用来避免Pod被分配到不合适的节点上。

    选择高级配置 > 容忍策略,设置“容忍策略”,请参考设置组件实例容忍度策略

    性能管理

    设置性能管理

    应用性能管理可协助您快速进行应用问题定位与性能瓶颈分析,改善体验。ServiceStage支持在部署组件过程中或者组件已经部署后设置应用性能管理。

    技术栈类型为Java、Tomcat或者Docker的组件,支持设置应用性能管理。

    选择高级配置 > 性能管理,设置“性能管理”,请参考设置应用性能管理

    自定义指标监控

    设置自定义指标监控

    ServiceStage支持获取您的自定义指标,您可使用该方式上报自定义指标。在部署组件过程中或者组件已经部署完成,都可以设置组件自定义指标。云容器引擎部署的组件,支持设置组件自定义指标监控。

    选择高级配置 > 自定义指标监控,设置“自定义指标监控”,请参考设置组件自定义指标监控

  14. 单击“创建并部署”

    在组件“部署记录”页面,可查看部署日志,等待组件部署完成。

    如果4选择的组件的技术栈类型为Java、Tomcat、Node.js、Python、Php,组件部署成功后,系统会创建“系统创建”类别的构建任务。查看构建任务,请参考查看构建任务

    图5 查看组件部署日志