管理和使用配置项(K8s ConfigMap)

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

命名空间的配置项是一种存储应用所需配置信息的资源类型,它可以作为容器运行环境中的环境变量,便于应用部署后灵活变更容器配置,也可以通过挂载配置文件的方式向容器中注入配置信息。本文介绍如何在SAE控制台创建和使用命名空间的配置项。

背景信息

命名空间的配置项仅用于容器运行环境的存储及配置,如果您需要创建应用代码的配置文件,请参见管理配置

创建配置项

  1. 登录SAE控制台

  2. 在左侧导航栏,单击命名空间(环境),在顶部菜单栏选择地域,然后单击具体命名空间名称。

  3. 在左侧导航栏,单击配置项,在配置项页面,单击创建
  4. 创建配置项面板,选择以下任一方法来创建配置项,并单击确定
    • 手工创建:在默认显示的手工创建页签,输入相关信息。 sc_create_configmap_via_manual
      配置项说明
      配置项名称自定义。
      配置项描述自定义。
      配置映射
      • 键的长度不超过250个字符,值的长度不超过10,000个字符。
      • 一个配置项最多可以填写20个键值对。
    • 文件录入:单击文件录入页签,输入相关信息。sc_create_configmap_via_file
      配置项说明
      配置项名称自定义。
      配置格式选择JSONYAML
      配置内容
      • JSON文件格式示例:
        {
          "env.shell": "/bin/sh",
          "nginx.conf": "daemon            off;\nworker_processes  2;\nuser              www-data;\n\nevents {\n    use           epoll;\n    worker_connections  128;\n}\n\nerror_log         logs/error.log info;\n\nhttp {\n    server_tokens off;\n    include       mime.types;\n    charset       utf-8;\n\n    access_log    logs/access.log  combined;\n\n    server {\n        server_name   localhost;\n        listen        127.0.0.1:80;\n\n        error_page    500 502 503 504  /50x.html;\n\n        location      / {\n            root      html;\n        }\n\n    }\n\n}"
        }
      • YAML文件格式示例:
        env.shell: /bin/sh
        nginx.conf: |
           daemon            off;
            worker_processes  2;
            user              www-data;
        
            events {
                use           epoll;
                worker_connections  128;
            }
        
            error_log         logs/error.log info;
        
            http {
                server_tokens off;
                include       mime.types;
                charset       utf-8;
        
                access_log    logs/access.log  combined;
        
                server {
                    server_name   localhost;
                    listen        127.0.0.1:80;
        
                    error_page    500 502 503 504  /50x.html;
        
                    location      / {
                        root      html;
                    }
        
                }
        
            }
      说明
      • 输入Kubernetes ConfigMap Manifest文件内容,支持JSON、YAML格式。
      • 中文字符仅支持UTF-8编码格式。
      • 文件内容的数据值大小不超过512K。
    创建的配置项将显示在配置项页面,您可以对其进行编辑复制删除的操作。
    说明
    • 修改后的配置项新版本仅生效于应用新实例(如手动新扩容或自动弹性的新实例),对存量实例不生效。为保证应用所有实例配置项版本的最终一致性,您在修改配置项后必须手动重启或部署应用。
    • 删除配置项将会影响这些应用的正常运行。请先在关联应用中解除使用该配置项再删除。

注入配置信息

在创建应用过程中注入配置信息

  1. 登录SAE控制台

  2. 在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击创建应用

  3. 应用基本信息配置向导,设置应用相关信息,并单击下一步:应用部署配置

  4. 应用部署配置配置向导,选择技术栈语言应用部署方式,设置部署信息。

  5. 展开配置管理区域,选择已创建的配置项名称和该配置项中的,并输入挂载配置项的挂载路径
    sc_configuration_management
    说明
    • 除了在命名空间页面提前创建好配置项,您也可以在环境变量设置区域单击创建配置项(K8s configmap),在创建配置项面板创建。
    • 支持挂载全部键。从下拉列表选择全部,将该配置项的所有键挂载到该路径。
  6. 可选:如需引用其他配置项,单击添加,并重复上一步。
  7. 单击下一步:确认规格

  8. 确认规格配置向导,查看您所创建应用的详细信息以及配置费用情况,并单击确认创建

    页面会跳转至创建完成配置向导,您可以单击应用详情页进入基本信息页面。

  9. 通过以下方式验证配置是否生效。

    • 方式一:

      在应用基本信息页面的左侧导航栏,单击变更记录,在变更记录页面,查看应用变更详情。如果显示执行成功,表示应用部署成功,配置已生效。

    • 方式二:

      在应用基本信息页面,单击实例部署信息页签,查看实例的运行状态。如果运行状态显示为Running,表示应用部署成功,配置已生效。

在部署应用过程中注入配置信息

警告

重新部署应用后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。

  1. 登录SAE控制台

  2. 在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击具体应用名称。

  3. 基本信息页面右上角,单击部署应用

  4. 展开配置管理区域,选择已创建的配置项名称和该配置项中的,并输入挂载配置项的挂载路径
    sc_configuration_management
    说明
    • 除了在命名空间页面提前创建好配置项,您也可以在环境变量设置区域单击创建配置项(K8s configmap),在创建配置项面板创建。
    • 支持挂载全部键。从下拉列表选择全部,将该配置项的所有键挂载到该路径。
  5. 配置完成后,单击确认
  6. 通过以下方式验证配置是否生效。

    • 方式一:

      在应用基本信息页面的左侧导航栏,单击变更记录,在变更记录页面,查看应用变更详情。如果显示执行成功,表示应用部署成功,配置已生效。

    • 方式二:

      在应用基本信息页面,单击实例部署信息页签,查看实例的运行状态。如果运行状态显示为Running,表示应用部署成功,配置已生效。

将配置项用作环境变量

配置项可以用作容器运行环境中的环境变量,便于部署后灵活变更容器配置。本文以创建应用为例,介绍如何在设置环境变量时引用配置项。

  1. 登录SAE控制台

  2. 在左侧导航栏,选择应用管理 > 应用列表,在顶部菜单栏选择地域,然后单击创建应用
  3. 应用基本信息配置向导,配置相关信息,然后单击下一步:应用部署配置
  4. 应用部署配置页签,输入所有必填信息,并在页面下方,展开环境变量设置区域。
  5. 环境变量设置区域的类型下拉列表,选择引用配置项,输入变量名称,并在最右侧的下拉列表,选择已创建的配置项名称和该配置项中的键。
    sc_environment_variable_v2.png
    说明 除了在命名空间页面提前创建好配置项,您也可以在环境变量设置区域单击创建配置项(K8s configmap),在创建配置项面板进行创建。
  6. 可选:如需引用其他配置项,单击添加,并重复上一步。
  7. 单击下一步:确认规格

  8. 确认规格配置向导,查看您所创建应用的详细信息以及费用配置情况,然后单击确认创建

    页面会跳转至创建完成配置向导,您可以单击应用详情页进入基本信息页面。

最佳实践

PHP如何手动配置php-fpm.conf

  1. 创建配置项。具体操作,请参见创建配置项
    sc_create_configmap_for_php
    配置项说明
    创建方式选择手工创建
    配置项名称自定义,例如输入php-fpm
    配置项描述自定义,例如输入www.conf
    配置映射
    • www.conf
    • [www]
      user = www-data
      group = www-data
      listen = 127.0.0.1:9000
      
      pm = dynamic
      pm.max_children = 5
      pm.start_servers = 2
      pm.min_spare_servers = 1
      pm.max_spare_servers = 3
  2. 注入配置信息。具体操作,请参见注入配置信息
    sc_use_php_configmap
    配置项说明
    配置项名称选择已创建的php-fpm
    选择已创建的www.conf
    挂载路径输入以下路径。
    /usr/local/etc/php-fpm.d/www.conf