在EDAS控制台使用镜像、JAR包或WAR包部署应用至K8s集群时,如果您精通Docker和JVM,并且希望在启动前进行特殊配置或不采用EDAS中预设的启动参数,您可设置容器启动和运行时需要的命令。
背景信息
制作镜像时,已通过Dockerfile文件中的ENTRYPOINT或CMD配置了容器的启动配置,启动时所配置的内容会优先被执行。
如果您不了解原Dockerfile镜像的CMD或ENTRYPOINT内容,不建议您自定义启动命令和启动参数,错误的自定义命令将导致应用创建失败。
由于Docker运行时仅支持一条ENTRYPOINT命令,所以在EDAS控制台中设置的启动命令将会覆盖在制作容器Docker镜像中设置的ENTRYPOINT和CMD命令。
例如在Dockerfile中配置ENTRYPOINT [nginx, '-g', 'daemon off;']
命令,该命令将会在容器启动时被第一个执行。
FROM ubuntu
ENTRYPOINT [nginx, '-g', 'daemon off;']
启动命令配置可以在创建、部署应用过程中设置,也可以在应用部署完成后设置。本文介绍在不同场景下设置启动命令的步骤。
在创建应用时配置启动命令的操作步骤,请参见在创建应用时配置启动命令。
如果您在应用部署完成后配置启动命令,那么该应用将会被重启,请在业务较少的时间段进行。具体操作,请参见在更新应用时配置启动命令。
在创建应用时配置启动命令
登录EDAS控制台,在左侧导航栏,单击 ,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,然后在应用列表页面左上角,单击创建应用。
在应用基本信息页签,选择集群类型和应用运行环境,然后在页面最下方单击下一步。
配置项
描述
集群类型
选择Kubernetes集群。
应用运行环境
根据选择的托管应用类型选择应用运行环境。
Java:
Java:支持通用的JAR包部署,适用于Dubbo和Spring Boot应用。在选择后可更改Java环境。
Tomcat:支持通用的WAR包部署,适用于Dubbo和Spring应用。在选择后可更改Java环境和容器版本。
EDAS-Container(HSF):适用于使用WAR或者FatJar部署HSF应用。在选择后可更改Java环境、Pandora版本和Ali-Tomcat版本。
自定义:适用于在K8s集群中使用自定义的镜像部署应用。
PHP:适用于运行在Apache HTTP Server中的PHP应用程序。
多语言Node.js、C++、Go...:适用于在K8s集群中使用自定义的镜像部署应用。
在应用配置页签,设置应用的环境信息、基本信息、部署方式和资源参数,设置完成后单击下一步。
在应用高级设置页签展开启动命令,并根据您的业务需求设置启动命令。
以
ENTRYPOINT: [nginx, '-g', 'daemon off;']
为例。参数
描述
启动命令
输入启动命令,例如:
nginx
。启动参数
每个参数占据一行。例如:在文本框中输入
-g
,然后单击添加,在新的参数行中增加输入参数daemon off
。完成设置后单击创建应用。
在应用创建完成页签确认应用基本信息、应用配置和应用高级设置等信息,确认完毕后单击确定创建应用。
在应用总览页面顶部提示信息中,单击查看详情,可在变更记录页面查看变更流程。应用部署需要几分钟,请您耐心等待。变更完成后在应用总览页面的基本信息区域查看实例的运行状态,如果显示为Pod运行中,说明应用部署成功。
在更新应用时配置启动命令
您可在创建应用时配置启动命令,也可以在部署应用时配置或更新启动命令。
登录EDAS控制台。
在左侧导航栏,单击 ,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。
在应用总览或基本信息页面的右上角,选择 。
在选择部署模式页面,选择具体的部署方式,然后在所选方式区域的右上角,单击开始部署。
设置应用的环境和部署包信息后展开启动命令,根据您的需求完成配置后单击确定。
以
ENTRYPOINT: [nginx, '-g', 'daemon off;']
为例。参数
描述
启动命令
输入启动命令,例如:
nginx
。启动参数
每个参数占据一行。例如:在文本框中输入
-g
,然后单击添加,在新的参数行中增加输入参数daemon off
。重要单击确定后,该应用将会被重启,请在业务较少的时间段进行。
查看执行结果
方法一:
在应用的变更记录页面中查看应用变更详情,如果显示执行成功,则表示部署成功,即配置已生效。
方法二:
在应用总览页面单击运行状态右侧的Pod运行状态链接,在容器组(Pod)区域查看Pod的状态,如果显示为代表运行中的绿色圆圈,则说明部署成功,配置已生效。
EDAS容器服务K8s和Serverless K8s交流群
如果您在EDAS中使用容器服务K8s集群和Serverless K8s集群过程中有任何疑问或建议,请使用钉钉搜索钉钉群号23197114加入钉钉群进行反馈。