在Serverless K8s集群中使用镜像方式部署应用

更新时间: 2023-05-06 10:26:44

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

前提条件

步骤一:创建Serverless Kubernetes集群

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

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

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

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

步骤三:在Serverless K8s集群中创建应用

  1. 登录EDAS控制台,在左侧导航栏单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,然后在应用列表页面左上角单击创建应用
  2. 应用基本信息页面中设置应用的集群类型和应用运行环境,然后单击下一步
    配置项描述
    集群类型选择Kubernetes集群。
    说明 Kubernetes集群支持服务网格。
    应用来源类型选择默认
    应用运行环境
    托管应用类型本文介绍如何部署Java应用,所以选择Java。 如果需要部署PHP或多语言应用,请参见从源码构建PHP应用并部署至容器服务K8s集群部署多语言微服务应用
    选择应用应用的运行环境。不同托管应用类型,不同部署包类型,需要选择不同的Java应用环境。本文中选择自定义,即使用镜像部署Java应用。应用运行环境包含在镜像中,无需选择。
    说明 OpenJDK 17支持2.7.14和3.0.6及以上版本的Dubbo。兼容性测试结果,请参见OpenJDK 17兼容测试数据
    表 2. OpenJDK 17兼容测试数据
    Dubbo版本Spring Boot版本Nacos-Client版本接口调用ARMS监控服务列表
    2.7.142.7.91.4.4OKOKOK
    2.7.142.7.92.1.2OKOKOK
    2.7.142.7.92.2.0OKOKOK
    2.7.222.7.91.4.4OKOKOK
    2.7.222.7.92.1.2OKOKOK
    2.7.222.7.92.2.0OKOKOK
    3.0.62.7.91.4.4OKOKOK
    3.0.62.7.92.1.2OKOKOK
    3.0.62.7.92.2.0OKOKOK
    3.1.72.7.91.4.4OKOKOK
    3.1.72.7.92.1.2OKOKOK
    3.1.72.7.92.2.0OKOKOK
  3. 应用配置页签中设置应用的环境信息、基本信息、部署方式和资源参数,设置完成后单击下一步
    配置项描述
    微服务空间应用所属空间。选择您创建的微服务空间,如果您未创建或不做选择,微服务空间则设置为默认

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

    集群在右侧下拉选择框内选择目标K8s集群。

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

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

    此处以选择default为例。

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

    应用名称输入应用名称,必须以字母开头,允许数字、字母、短划线(-)组合。最多支持输入36个字符。
    应用描述输入应用描述 ,最大长度为128个字符。
    镜像类型
    • 配置镜像
      • 阿里云镜像服务选择当前账号

        选择镜像所属地域容器镜像服务镜像仓库命名空间镜像仓库名和镜像版本。

      • 阿里云镜像服务选择为其他阿里云账号
        • 如您的镜像存放在公开仓库中,那么您配置完整镜像地址即可。
        • 如您的镜像存放在私有仓库中,那么您需要使用免密插件拉取容器镜像,请参见使用免密组件拉取容器镜像
    • Demo镜像

      选择EDAS提供的Demo镜像和镜像版本。

      说明 专有云暂不支持Demo镜像。
    说明 如果您以RAM用户且使用企业版容器镜像仓库里的镜像创建应用时,需要阿里云账号为该RAM用户授权。具体信息,请参见配置仓库的RAM访问控制
    Pod总数设置该应用要部署的Pod个数。没有数量限制,上限取决于集群性能。
    单Pod资源配额设置单个Pod的CPU、内存和临时存储,如果您需要限额,请填写具体的数字,使用默认值0则代表不限额。没有配额限制,上限取决于集群性能。
  4. (可选)配置应用高级设置。

  5. 完成设置后单击创建应用,然后在应用创建完成页签,单击确定创建应用
  6. 应用变更预检确认对话框,单击开始预检
    1. 应用变更预检确认的下一页,确认预检项和预检结果,单击继续
    2. 可选:如您有更改以上预检项,请单击重新检测
    应用创建可能需要几分钟,创建过程中,可以通过查看变更记录跟踪应用的创建流程。创建完成后,返回应用总览页面,查看实例Pod的运行状态。若运行状态运行中,说明应用发布成功。单击Pod的运行状态可以查看应用实例的工作负载(Deployment)容器组(Pod)和高级配置信息。

后续步骤

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

EDAS容器服务K8s和Serverless K8s交流群

如果您在EDAS中使用容器服务K8s集群和Serverless K8s集群过程中有任何疑问或建议,请使用钉钉搜索钉钉群号23197114加入钉钉群进行反馈。

阿里云首页 企业级分布式应用服务 EDAS 相关技术圈