EDAS在云原生K8s之上,全面集成了容器服务Kubernetes版ACK(Container Service for Kubernetes),支持K8s容器化应用的全生命周期管理。容器服务K8s集群集成了阿里云虚拟机、存储、网络和安全等能力,拥有云端极佳的K8s容器化应用运行环境。本教程介绍如何在容器服务K8s集群中使用官方Demo的JAR包或WAR包来部署应用。

背景信息

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

K8s集群中创建应用流程

前提条件

步骤一:创建容器服务Kubernetes集群

登录容器服务Kubernetes版控制台,创建容器服务Kubernetes集群。具体操作,请参见快速创建Kubernetes托管版集群

如果创建Serverless Kubernetes集群,专有网络请选择自动创建(选择已有网络,创建完毕后请查看集群资源是否包含VPC和交换机资源),服务发现请选择PrivateZone,以便Serverless Kubernetes集群在导入EDAS后可以使用服务网格。

创建ASK集群

步骤二:在EDAS控制台中导入容器服务K8s集群

在EDAS控制台导入容器服务K8s集群时,会默认安装应用防护(限流降级)组件(ack-ahas-sentinel-pilot)、ARMS监控组件(ack-arms-pilot)以及Prometheus监控组件(ack-arms-prometheus)。

  1. 登录EDAS控制台
  2. 在左侧导航栏选择资源管理 > 容器服务K8s集群
  3. 在顶部菜单栏选择地域,然后单击同步容器服务Kubernetes集群
  4. 在导入的容器服务K8s集群的操作列单击导入
  5. 导入Kubernetes集群页面,从下拉列表中选择目标微服务空间,根据需要选择是否开启服务网格,然后单击导入
    当容器服务K8s集群状态显示为运行中,并且导入状态显示为导入成功时,表示容器服务K8s集群已成功导入到EDAS。

步骤三:在容器服务K8s集群中部署应用

说明 WAR和JAR的部署步骤一致,本文以通过JAR为例介绍如何部署应用。
  1. 登录EDAS控制台
  2. 在左侧导航栏单击应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,然后在应用列表页面左上角单击创建应用
  3. 应用基本信息页面中设置应用的集群类型和应用运行环境,然后单击下一步
    应用基本信息设置
    参数 描述
    集群类型 选择Kubernetes集群
    应用运行环境
    托管应用类型 本文介绍如何部署Java应用,所以选择Java。 如果需要部署PHP或多语言应用,请参见从源码构建PHP应用并部署至容器服务K8s集群部署多语言微服务应用
    选择应用 本文介绍如何通过JAR包或WAR包部署Java应用,所以请根据应用类型和部署包,选择JavaTomcatEDAS-Container(HSF)。如果需要通过镜像部署应用,请参见在容器服务K8s集群中使用镜像方式部署Java应用
    • Java:支持通用的JAR包部署,适用于Dubbo和Spring Boot应用。选择后,可设置Java环境
    • Tomcat:支持通用的WAR包部署,适用于Dubbo和Spring应用。选择后,可设置Java环境容器版本
    • EDAS-Container(HSF):适用于使用WAR或者FatJar部署HSF应用。选择后,可设置Java环境Pandora版本Ali-Tomcat版本
    服务注册与发现配置 选择注册中心的运维方式。如何选择,请参见选择注册中心运维方式
  4. 应用配置页签中设置应用的环境信息、基本信息、部署方式和资源参数,设置完成后单击下一步
    K8s集群-应用配置-JAR
    参数 描述
    微服务空间 应用所属空间。选择您创建的微服务空间,如果您未创建微服务空间或不做选择,微服务空间则设置为默认

    如果您没有创建微服务空间,或者需要创建新的微服务空间,您可以直接单击创建微服务空间,创建一个全新的微服务空间。具体操作,请参见创建微服务空间

    集群 在右侧下拉列表内选择已导入的容器服务K8s集群。

    如果您选择的K8s集群未导入到EDAS,请选中该集群在EDAS初次使用,勾选后,将会在应用创建时将该集群导入EDAS,因此会产生一定耗时。并确认是否开启服务网格。

    说明 集群导入的微服务空间可以不是应用所属微服务空间。
    K8s Namespace K8s Namespace通过将系统内部的对象分配到不同的Namespace中,形成逻辑上分组的不同项目、小组或用户组,便于不同的分组在共享使用整个集群的资源的同时还能被分别管理。
    • default:没有其他命名空间的对象的默认命名空间。
    • kube-system:系统创建的对象的命名空间。
    • kube-public:此命名空间是自动创建的,并且可供所有用户(包括未经过身份验证的用户)读取。

    此处以选择default为例。

    如果您需要自定义创建K8s Namespace,请单击创建K8s Namespace并设置K8s Namespace名称。名称设置要求只能包含数字、小写字母和短划线(-),且首尾只能是字母或数字,长度为1~63个字符。

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

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

    版本 请输入版本,您可以自定义版本号,也可以单击右侧的用时间戳作为版本号自动生成版本号。
    时区 设置应用的时区信息。
    Pod总数 设置该应用要部署的Pod个数。
    单Pod资源配额 设置单个Pod的CPU和内存,如果您需要限额,请填写具体的数字,使用默认值0则代表不限额。
  5. (可选)配置应用高级设置。
  6. 完成设置后单击创建应用
    应用创建可能需要几分钟,创建过程中,可以通过变更记录查看应用总览跟踪应用的创建流程。创建完成后,返回应用总览页面查看实例Pod的运行状态若为运行中则说明应用发布成功,单击Pod的运行状态可以查看应用实例的工作负载容器组(Pod)启动命令等高级配置信息。

后续步骤

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

联系我们

如果您在EDAS中使用容器服务K8s集群和Serverless K8s集群过程中有任何疑问或建议,请提交工单,或使用钉钉扫描下面的二维码或搜索钉钉群号23197114加入钉钉群进行反馈。

EDAS K8s/Serverless K8s交流群