EDAS在云原生Kubernetes之上,全面集成了容器服务Kubernetes版,支持K8s容器化应用的全生命周期管理。Serverless Kubernetes适合快速伸缩的敏捷业务场景以及单个或多个任务处理的场景。本教程介绍了如何在Serverless K8s集群中使用官方Demo的JAR包来部署应用。

背景信息

在Serverless K8s集群中部署应用,您需在容器服务Kubernetes版控制台中创建Serverless K8s集群,并将该集群导入到EDAS控制台,然后在导入的Serverless K8s集群中使用部署包或镜像来部署应用。

在K8s集群中部署应用流程图

前提条件

步骤一:创建Serverless Kubernetes集群

登录容器服务Kubernetes版控制台,创建Serverless Kubernetes集群,详情请参见创建Serverless Kubernetes集群

步骤二:在EDAS控制台中导入Serverless Kubernetes集群

  1. 登录EDAS控制台
  2. 在左侧导航栏选择资源管理 > Serverless K8s 集群
  3. 在顶部菜单栏选择地域,选择要导入集群的目标命名空间,然后单击同步Serverless K8s集群
  4. 在导入的Serverless K8s集群的操作列单击导入
    当Serverless K8s集群状态显示为运行中,并且导入状态显示为导入成功时,表示Serverless K8s集群已成功导入到EDAS。

步骤三:在Serverless K8s集群中部署应用

说明 WAR和JAR的部署步骤一致,本文以通过JAR为例介绍如何部署应用。
  1. 登录EDAS控制台
  2. 在左侧导航栏中选择应用管理 > 应用列表,在应用列表页面左上角单击创建应用
  3. 应用基本信息页面中设置应用的集群类型和应用运行环境,然后单击下一步
    应用基本信息设置
    参数 描述
    集群类型 选择Kubernetes集群
    应用运行环境 在本篇文档中,选择Java作为示例。
    • 自定义:适用于在K8s集群中使用自定义的镜像部署应用。
    • Java:支持通用的JAR包部署,适用于Dubbo和Spring Boot应用。在选择后可更改Java环境。
    • Tomcat:支持通用的WAR包部署,适用于Dubbo和Spring应用。在选择后可更改Java环境和容器版本。
    • EDAS-Container(HSF):适用于使用WAR或者FatJar部署HSF应用。在选择后可更改Java环境、Pandora版本和Ali-Tomcat版本。
  4. 应用配置页签中设置应用的环境信息、基本信息、部署方式和资源参数,设置完成后单击下一步
    K8s集群-应用配置-JAR
    参数 描述
    命名空间 选择您创建的命名空间,如果您未创建命名空间或不做选择,命名空间则设置为默认
    集群 在右侧下拉选择框内选择导入的Serverless K8s集群。
    K8s Namespace K8s Namespace通过将系统内部的对象分配到不同的Namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。
    • default:没有其他命名空间的对象的默认命名空间。
    • kube-system:系统创建的对象的命名空间。
    • kube-public:此命名空间是自动创建的,并且可供所有用户(包括未经过身份验证的用户)读取。

    此处以选择default为例。

    应用名称 输入应用名称,必须以字母开头,允许数字、字母、短划线(-)组合。最大长度为36个字符。
    应用描述 输入应用描述 ,最大长度为128个字符。
    部署包来源
    • 自定义程序
      需选择文件上传方式
      • 上传JAR包:选择下载好的JAR包并上传。
      • JAR包地址:输入Demo包地址。
    • 官方Demo

      EDAS提供的Demo类型有Spring Cloud服务端应用Spring Cloud客户端应用Dubbo服务端应用Dubbo客户端应用,请依据实际需求选择。

    版本 请输入版本,您可以自定义版本号也可以使用时间戳作为版本号。
    时区 设置应用的时区信息。
    Pod总数 设置该应用要部署的Pod个数。
    单Pod资源配额 设置单个Pod的CPU和内存,如果您需要限额,请填写具体的数字,使用默认值0则代表不限额。
  5. (可选)配置应用高级设置。
    1. 设置启动命令和启动参数。
      说明 若不了解原Dockerfile镜像的CMDENTRYPOINT内容,不建议修改自定义启动命令和启动参数,错误的自定义命令将导致应用创建失败。
      参数 描述
      启动命令 输入启动命令,如命令CMD ["/usr/sbin/sshd","-D"],则在输入框内填写/usr/sbin/sshd –D
      启动参数 每个参数占据一行。如args:["-c"; "while sleep 2"; "do echo date"; "done"]中包含4个参数,需要通过单击添加来增加启动参数的输入框将参数分为4行来填写。
    2. 设置环境变量。
      在创建应用过程中,将所填环境变量注入到即将生成的容器中,这样可以避免常用环境变量的重复添加。
      • 如果您需要设置JVM堆内存、JVM属性参数、Java Agent等参数,可以在设置环境变量这一步添加相关参数。
        • 变量名:CATALINA_OPTS
        • 变量值:[您需要添加的参数] $(EDAS_CATALINA_OPTS)
        环境变量1
      • 如您使用MySQL镜像时,可以参考以下环境变量:
        • MYSQL_ROOT_PASSWORD(必选项):用于设置MySQL的root密码。
        • MYSQL_USER和MYSQL_PASSWORD(可选项):用于添加除root之外的账号并设置密码。
        • MYSQL_DATABASE(可选项):用于设置生成容器时需要新建的数据库。
      • 如使用其它类型的镜像,请根据实际需求进行配置。
    3. 设置持久化存储。

      在阿里云容器服务Kubernetes集群中,原生的Volume对象所对应的物理储存为非持久化的,它的生命周期与Kubernetes Pod一致,是一个暂态的储存对象。使用持久化的储存服务—文件储存NAS,可以永久保存实例数据,应用在升级或迁移后不丢失。

      说明 设置持久化存储前,请确保您的EDAS账号已开通文件存储NAS。使用NAS请保证当前账户拥有足够的余额或计费方式为后付费,NAS服务的计费规则请参见计量项和计费项
      参数 描述
      存储类型 默认为NAS文件存储,不可配置。
      存储服务类型 目前仅支持SSD性能型,不可配置。
      选择NAS
      • 新购一个NAS:选择NAS挂载目录和本地挂载目录。单一地域内NAS文件系统上限为10个,若已超过10个会创建失败。如有特殊需求,请提交工单
      • 使用已有NAS:选择一个已有的NAS。您最多可以创建两个挂载点。不符合要求的NAS将不会显示在下拉列表中。
      挂载目录 设置挂载目录命令。
    4. 设置应用生命周期管理。
      参数 描述
      PostStart配置 一种容器钩子。该钩子在容器被创建后立刻触发,通知容器它已经被创建。该钩子不需要向其所对应的hook handler传入任何参数。如果该钩子对应的hook handler执行失败,则该容器会终止运行,并根据该容器的重启策略决定是否要重启该容器。详情请参见Container Lifecycle Hooks
      PreStop配置 一种容器钩子。该钩子在容器被删除前触发,其所对应的hook handler必须在删除该容器的请求发送给Docker daemon之前完成。在该钩子对应的hook handler完成后不论执行的结果如何,Docker daemon会发送一个SGTERN信号量给Docker daemon来删除该容器。详情请参见Container Lifecycle Hooks
      Liveness配置 一种探测容器状态的探针,探测应用是否处于健康状态。如果不健康,则删除重建容器。详情请参见Pod Lifecycle
      Readiness配置 一种探测容器状态的探针,探测应用是否启动完成并且处于正常服务状态。如果不正常,则更新容器的状态。详情请参见Pod Lifecycle
  6. 完成设置后单击创建应用
    应用创建可能需要几分钟,创建过程中,可以通过变更记录查看应用总览跟踪应用的创建流程。创建完成后,返回应用总览页面查看实例Pod的运行状态若为运行中则说明应用发布成功,单击Pod的运行状态可以查看应用实例的工作负载容器组(Pod)启动命令等高级配置信息。

后续步骤

应用创建完毕后,可以通过添加公网SLB实现公网访问,添加私网SLB实现同VPC内所有节点够能通过私网负载均衡访问您的应用。相关操作请参见为 Kubernetes 集群中的应用添加负载均衡 SLB

联系我们

如果在使用容器服务Kubernetes集群过程中有任何疑问,欢迎您扫描下面的二维码加入钉钉群进行反馈。

edas_ding