应用在系统中运行需要配置特定的环境变量,例如Java应用程序在配置JAVA_HOME及其PATH后,其相关命令才可以被执行。本文介绍了如何在EDAS控制台上为应用配置环境变量。

背景信息

目前EDAS控制台支持三种环境变量类型:
  • 自定义:创建应用时自定义环境变量。
  • 配置项:提前配置好的一类不需要加密的配置信息,应用需要和配置项在相同地域、相同集群、相同K8s命名空间,否则无法使用配置项。

    创建配置项的具体操作,请参见创建配置项

  • 保密字典:提前配置好的一类需要加密的密码和证书等信息,应用需要和保密字典在相同地域、相同集群、相同K8s命名空间,否则无法使用保密字典。

    创建保密字典的具体操作,请参见创建保密字典

在创建应用时设置环境变量

  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版本。
    • PHP:适用于运行在Apache HTTP Server中的PHP应用程序。
    • 多语言Node.js、C++、Go...:适用于在K8s集群中使用自定义的镜像部署应用。此处未介绍多语言应用的配置流程,如需了解更多信息,请参见在K8s环境中通过镜像部署多语言微服务应用
  4. 应用配置页签中设置应用的环境信息、基本信息、部署方式和资源参数,设置完成后单击下一步
  5. 应用高级设置页签展开环境变量,并根据您的业务需求设置环境变量。
    在创建应用过程中,将所填环境变量注入到即将生成的容器中,这样可以避免重复添加常用环境变量。目前EDAS支持自定义配置项保密字典三种配置环境变量的方式,同时还支持单个添加和批量添加的方式,请根据实际需求选择配置方式:
    • 单个添加环境变量。
      • 自定义配置环境变量。自定义-环境变量1
        说明
        • 如果您需要设置JVM堆内存、JVM属性参数、Java Agent等参数,可以在设置环境变量这一步添加相关参数。
          • 变量名:CATALINA_OPTS
          • 变量值:[您需要添加的参数] $(EDAS_CATALINA_OPTS)
        • 使用MySQL镜像时,可以参考以下环境变量:
          • MYSQL_ROOT_PASSWORD(必选项):用于设置MySQL的Root密码。
          • MYSQL_USER和MYSQL_PASSWORD(可选项):用于添加除Root之外的账号并设置密码。
          • MYSQL_DATABASE(可选项):用于设置生成容器时需要新建的数据库。
        • 如使用其他类型的镜像,请根据实际需求进行配置。
      • 使用配置项配置环境变量。

        变量引用参数下方选择目标配置项。一个配置项可能存在多个键值信息,请选择正确的键值信息。

        环境变量1
      • 使用保密字典配置环境变量。

        变量引用参数下方选择目标保密字典。一个保密字典可能存在多个键值信息,请选择正确的键值信息。

        变量配置2
    • 批量添加环境变量。批量添加环境变量
      参数 描述
      类型 根据需要选择配置项保密字典自定义类型无法批量添加。
      配置方式 支持envenvFrom两种配置方式。
      • env:选择目标配置项后,还需要选择配置项中的目标变量。
      • envFrom:选择目标配置项后,不能选择变量,默认选中全部变量。
      说明
      • 批量添加环境变量时,最大支持添加100个环境变量。
      • 通过编辑YAML添加envFrom方式导入的环境变量数据,也会生效,但是不会在此显示。
      配置项 从下拉列表中选择目标配置项。
      变量引用 选择env配置方式时需要选择变量。
      说明 批量添加配置项的变量后,还需要根据实际需要设置环境变量的名称。
  6. 完成设置后单击创建应用
  7. 应用创建完成页签确认应用基本信息应用配置应用高级设置等信息,确认完毕后单击确定创建应用
    在应用应用总览页面顶部提示信息中单击查看详情,可在变更记录页面查看变更流程。应用部署需要几分钟,请您耐心等待。变更完成后在应用总览页面的基本信息区域查看实例的运行状态,如果显示为Pod运行中,说明应用部署成功。

在更新应用时配置环境变量

如果您在创建应用时没有配置环境变量,可以在部署应用时进行配置。

  1. 登录EDAS控制台
  2. 在左侧导航栏中单击应用列表,在顶部菜单栏选择地域并在页面上方选择微服务空间,在集群类型下拉列表中选择容器服务/Serverless K8s集群,然后在页面单击具体的应用名称。
  3. 应用总览基本信息页面的右上角选择部署 > 部署
  4. 选择部署模式页面选择具体的部署方式,然后在所选方式区域的右上角单击开始部署
  5. 设置应用的环境和部署包信息后展开环境变量,根据您的需求完成配置后单击确定
    在创建应用过程中,将所填环境变量注入到即将生成的容器中,这样可以避免重复添加常用环境变量。目前EDAS支持自定义配置项保密字典三种配置环境变量的方式,同时还支持单个添加和批量添加的方式,请根据实际需求选择配置方式:
    • 单个添加环境变量。
      • 自定义配置环境变量。自定义-环境变量1
        说明
        • 如果您需要设置JVM堆内存、JVM属性参数、Java Agent等参数,可以在设置环境变量这一步添加相关参数。
          • 变量名:CATALINA_OPTS
          • 变量值:[您需要添加的参数] $(EDAS_CATALINA_OPTS)
        • 使用MySQL镜像时,可以参考以下环境变量:
          • MYSQL_ROOT_PASSWORD(必选项):用于设置MySQL的Root密码。
          • MYSQL_USER和MYSQL_PASSWORD(可选项):用于添加除Root之外的账号并设置密码。
          • MYSQL_DATABASE(可选项):用于设置生成容器时需要新建的数据库。
        • 如使用其他类型的镜像,请根据实际需求进行配置。
      • 使用配置项配置环境变量。

        变量引用参数下方选择目标配置项。一个配置项可能存在多个键值信息,请选择正确的键值信息。

        环境变量1
      • 使用保密字典配置环境变量。

        变量引用参数下方选择目标保密字典。一个保密字典可能存在多个键值信息,请选择正确的键值信息。

        变量配置2
    • 批量添加环境变量。批量添加环境变量
      参数 描述
      类型 根据需要选择配置项保密字典自定义类型无法批量添加。
      配置方式 支持envenvFrom两种配置方式。
      • env:选择目标配置项后,还需要选择配置项中的目标变量。
      • envFrom:选择目标配置项后,不能选择变量,默认选中全部变量。
      说明
      • 批量添加环境变量时,最大支持添加100个环境变量。
      • 通过编辑YAML添加envFrom方式导入的环境变量数据,也会生效,但是不会在此显示。
      配置项 从下拉列表中选择目标配置项。
      变量引用 选择env配置方式时需要选择变量。
      说明 批量添加配置项的变量后,还需要根据实际需要设置环境变量的名称。
    注意 单击确定后,该应用将会被重启,请在业务较少的时间段进行。

查看执行结果

  • 方法一:

    在应用的变更记录页面中查看应用变更详情,如果显示执行成功,则表示部署成功,即配置已生效。

  • 方法二:

    应用总览页面单击运行状态右侧的Pod运行状态链接,在容器组(Pod)区域查看Pod的状态,如果显示为代表运行中的绿色圆圈,则说明部署成功,配置已生效。

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

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

EDAS K8s/Serverless K8s交流群