本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
配置项(K8s ConfigMap)可以作为应用运行时的环境变量,也可以作为配置文件挂载到应用容器内的文件系统。使用配置项(K8s ConfigMap)的好处是可以在应用部署后灵活变更配置,而无需重新构建镜像。
如需从配置中心动态获取所需的配置信息,则不适用本文,请参见使用MSE的Nacos注册中心或管理分布式配置(ACM)。
如需存储密钥、证书等敏感信息,请参见管理和使用保密字典(K8s Secret)。
创建配置项(ConfigMap)
在SAE配置项(ConfigMap)中,在顶部选择目标地域和命名空间,点击创建。注意需要选择目标应用所在的命名空间。
自定义配置项名称。
配置映射,选择合适的编辑模式来配置变量名和变量值的映射:
使用表单编辑:添加变量,填写变量名和变量值。可以添加多个变量。对于较长的配置文件内容,可以点击变量值旁的
图标,粘贴并编辑内容。
使用JSON格式编辑:在代码框中输入单个或多个变量名和变量值的映射,需要分别用
""
括起来。示例如下:{ "nv_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 }" }
使用YAML格式编辑:在代码框中输入单个或多个变量名和变量值的映射。示例如下:
nv_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; } }
在配置项(ConfigMap)列表中查看已创建的配置项,可以按需执行编辑、复制、查看历史、删除操作。
重要完成创建配置项(ConfigMap)后,需要将配置项(ConfigMap)用作应用的环境变量或将配置项(ConfigMap)作为配置文件挂载到应用的文件系统方可生效。
对配置项(ConfigMap)进行修改后,需要手动重新部署引用该配置项的应用,以确保变更生效。
删除配置项(ConfigMap)将会影响引用该配置项的应用的正常运行,请注意在删除前解除应用对配置项的引用。
将配置项(ConfigMap)用作应用的环境变量
创建应用
在SAE应用列表中,在顶部选择目标地域和命名空间,点击创建应用。在应用基本信息页面进行配置后,单击下一步:高级设置。
对正在运行的应用进行变更
警告重新部署应用后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。
在SAE应用列表中,在顶部选择目标地域和命名空间,点击目标应用ID跳转到应用详情页。在左侧导航栏点击基础信息,在右上角点击部署应用。
对已停止的应用进行变更
在SAE应用列表中,在顶部选择目标地域和命名空间,点击目标应用ID跳转到应用详情页。点击基础信息,点击修改应用配置。
在环境变量区域,选择类型为引用配置项,自定义在当前应用中的变量名称(对于引用全部键,则无需指定变量名称,而是直接使用键名作为变量名称),然后选择引用已创建的配置项名称和键(配置项中的变量名,支持引用全部键)。可以添加多个配置项。
等待应用部署成功。验证配置是否生效:登录应用实例的Webshell,执行
env | grep <变量名称>
,注意将其中<变量名称>
替换为之前配置的实际值。返回变量名和变量值的映射,表明配置生效。
将配置项(ConfigMap)作为配置文件挂载到应用的文件系统
将配置项(ConfigMap)挂载到应用容器内的文件系统,配置项的值作为文件内容,文件路径和文件名可自定义。如果文件路径下存在同名文件,则挂载的文件会替换原有文件。
挂载的文件常作为应用的配置文件,以实现灵活变更配置,而无需重新构建镜像。如需修改应用容器中原有的配置文件,请先将原配置文件内容复制到本地,修改后将其保存为配置项(ConfigMap)的值,再参考下文将其挂载到应用的文件系统。
创建应用
在SAE应用列表中,在顶部选择目标地域和命名空间,点击创建应用。在应用基本信息页面进行配置后,单击下一步:高级设置。
对正在运行的应用进行变更
警告重新部署应用后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。
在SAE应用列表中,在顶部选择目标地域和命名空间,点击目标应用ID跳转到应用详情页。在左侧导航栏点击基础信息,在右上角点击部署应用。
对已停止的应用进行变更
在SAE应用列表中,在顶部选择目标地域和命名空间,点击目标应用ID跳转到应用详情页。点击基础信息,点击修改应用配置。
在配置管理区域,单击+ 添加,选择引用已创建的配置项名称和键(配置项中的变量名,支持挂载全部键),然后自定义挂载路径(对于挂载单个键,填写包含文件名的绝对路径;对于挂载全部键,填写不包含文件名的绝对路径,SAE将各配置项的键名自动作为文件名)。可以添加多个配置项。
等待应用部署成功。验证配置是否生效:登录应用实例的Webshell,查看挂载路径下的文件内容。