从源码、脚本和压缩包构建Python应用并部署至容器服务K8s集群

EDAS现支持从源码、脚本和压缩包构建Python应用并部署至EDAS的容器服务K8s集群,并提供了应用扩缩、监控报警、负载均衡和限流降级等能力。本文介绍如何从源码构建Python应用并部署至容器服务K8s集群。

前提条件

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

登录容器服务Kubernetes版控制台,创建容器服务Kubernetes集群。具体操作,请参见通过ACK快速搭建魔方游戏应用

如果创建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控制台,在左侧导航栏,选择资源管理 > 容器服务K8s集群

  2. 在顶部菜单栏选择地域,然后单击同步容器服务Kubernetes集群

  3. 在导入的容器服务K8s集群的操作列,单击导入

  4. 导入预检对话框,单击继续导入

  5. 导入Kubernetes集群对话框,从下拉列表中选择目标微服务空间,根据需要选择是否开启服务网格,然后单击导入

    当容器服务K8s集群状态显示为运行中,并且导入状态显示为导入成功时,表示容器服务K8s集群已成功导入到EDAS。

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

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域,并在页面上方选择微服务空间,然后在应用列表页面左上角,单击创建应用

  3. 应用基本信息页面中设置应用的集群类型和应用运行环境,然后单击下一步

    配置项

    描述

    集群类型

    选择Kubernetes集群

    工作负载类型

    默认选择无状态(Deployment)

    应用来源类型

    选择默认

    托管应用类型

    本文介绍如何部署Python应用,所以选择Python。如果需要部署JavaPHP应用,请参见在容器服务K8s集群中使用JAR包或WAR包部署应用从源码构建PHP应用并部署至容器服务K8s集群

    选择应用

    本文介绍如何使用Python部署应用,所以选择Python。选择Python后,您还需要选择Python版本Nginx版本(可不安装)。

    如果选择自定义,您需要在应用配置页面,通过配置镜像或使用Demo镜像来部署应用。

  4. 应用配置页签中设置应用的环境信息、基本信息、源码及镜像构建相关信息,设置完成后单击下一步

    image

    配置项

    描述

    微服务空间

    选择您创建的微服务空间,如果您未创建微服务空间或不做选择,微服务空间则设置为默认

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

    集群

    在右侧下拉列表内选择已导入的容器服务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个字符。

    部署包来源

    应用部署包的来源如下:

    • 压缩包上传或使用包地址(默认值):上传.tar.zip格式的压缩包至EDASOSS Bucket中或快速使用Demo包。

    • 单个脚步:上传单个Python脚本至EDASOSS Bucket中。

    • 源码部署(支持GIT):快速使用Demo工程,并选择鉴权方式。

    构建仓库类型

    基于.tar.zip包完成镜像构建后的镜像存储仓库,具体如下:

    • EDAS镜像仓库(默认值):在构建过程中,构建任务将在用户的集群中运行,但结果将推送至EDAS的镜像仓库中。

    • ACR个人版ACR企业版:在构建时,构建任务会运行在用户的集群,但是最终会推送到用户选择的镜像仓库中。

    镜像目标架构

    选择构建镜像支持的目标平台架构,目前支持linux/amd64linux/arm64平台架构,若全不选,默认构建linux/amd64,详情请参见配置镜像目标架构

    ACR所属地域

    选择您的容器镜像所在的地域。该参数仅在构建仓库类型选择ACR企业版时需要配置。

    容器镜像服务

    选择您的容器镜像服务。该参数仅在构建仓库类型选择ACR企业版时需要配置。

    镜像仓库命名空间

    在下拉列表中选择您的镜像仓库所在的微服务空间,也可以单击单侧的+创建命名空间创建新的微服务空间。

    版本

    可选择时间戳作为版本,或自定义版本号。

    时区

    需要参考指定区域对应UTC时区。

    Pod总数

    设置该应用要部署的Pod个数。

    Pod资源配额

    设置单个PodCPU和内存,如果您需要限额,请填写具体的数字,使用默认值0则代表不限额。

  5. 应用启动设置页面,选择应用启动方式并编写脚本,同时填写Python依赖,您也可以通过AI快速生成,单击下一步

    image

    说明

    当您选择Nginx版本后,可填写Nginx配置。

  6. (可选)在应用高级设置页面,设置完成后单击下一步

  7. 分组设置(必填)页面,选择资源组,单击创建应用

  8. 应用创建完成页面,确认应用信息,单击确定创建应用

    应用创建可能需要几分钟,创建过程中,可以在变更记录页面查看应用的创建流程。创建完成后,返回应用总览页面查看实例Pod的运行状态若为运行中则说明应用发布成功,单击Pod的运行状态可以查看应用实例的工作负载容器组(Pod)启动命令等高级配置信息。

    image

    image

后续步骤

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

联系我们

如果您在部署EDAS多语言微服务应用过程中有任何疑问或建议,请使用钉钉搜索钉钉群号23307994加入钉钉群进行反馈。

多语言用户群钉钉二维码