配置用来规定一些程序在启动时读入设定,提供了一种修改程序设置的手段, 针对不同的对象可以使用不同的配置。
配置项是多个配置的集合,配置项的值可以是字符串,也可以是文件。 配置项支持YAML格式和可视化编辑, 单击查看 YAML 语法。 配置项只支持新增版本,不支持修改版本。
使用方法一: 将配置项中的配置以数据卷的形式挂载到容器中 使用方法二: 创建服务时引用配置项环境变量
1.新建配置文件
点击并展开配置管理,点击configmap,点击新建,输入名称,变量和变量值,点击创建configmap。至此,configmap配置文件创建完成。
变量值说明:
我们替换的是/etc/nginx/conf.d/localhost.conf文件内容
将原配置文件中的日志文件:error_log /data/logs/nginx/wordpress.tencent.com_error.log error;
进行替换修改为:error_log /data/logs/nginx/wordpress.fengliang.com_error.log error;
备注:变量值内容
server {
listen 80;
server_name wordpress.tencent.com localhost;
error_log /data/logs/nginx/wordpress.fengliang.com_error.log error;
root "/data/www/wordpress";
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass unix:/dev/shm/php-fpm.sock;
}
}
2.替换wordpress容器中的配置文件
这里需要登录node节点机器,执行
# kubectl get deployment //查看deployment任务
# kubectl edit deployment wordpress //编辑deployment wordpress yaml文件,进行参数添加
这里采用subPath方式进行挂载, 只会把文件挂载在已存在的目录,不会覆盖原目录,修改好之后,执行:wq保存退出即可。
修改后的wordpress yaml文件内容如下:
apiVersion: apps/v1beta2
kind: Deployment
metadata:
annotations:
deployment.kubernetes.io/revision: "1"
generation: 1
labels:
k8s-app: wordpress-conf
qcloud-app: wordpress-conf
name: wordpress-conf
namespace: default
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s-app: wordpress-conf
qcloud-app: wordpress-conf
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
k8s-app: wordpress-conf
qcloud-app: wordpress-conf
spec:
containers:
- env:
- name: PATH
value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
image: ccr.ccs.tencentyun.com/liangfeng/test:test-nginx-201908051618-d852fb93feb0e32c386f4facb8550a3e1e679066
imagePullPolicy: IfNotPresent
name: nginx
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 250m
memory: 256Mi
volumeMounts:
- mountPath: /etc/nginx/conf.d/localhost.conf
name: config-volume
subPath: localhost.conf
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
- env:
- name: PATH
value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
image: ccr.ccs.tencentyun.com/liangfeng/test:test-php-201908051634-7ec4253f2f17431d387aadecbf3d2b79a690681f
imagePullPolicy: IfNotPresent
name: php
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 250m
memory: 256Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: qcloudregistrykey
- name: tencenthubkey
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- configMap:
defaultMode: 466
name: wordpress-confv1
name: config-volume
3.验证
在pod管理中,点击远程登录,再登录,此时进入nginx容器控制台,执行cat /etc/nginx.conf.d/localhost.conf,可以error_log /data/logs/nginx/wordpress.tencent.com_error.log error; 替换成了error_log /data/logs/nginx/wordpress.fengliang.com_error.log error;,说明日志名称替换了,替换成功!
1.新建配置
点击并展开配置管理,点击configmap,点击新建,输入名称,变量和变量值(我这里填写RUNTIME=dev,这个变量我想赋值给php容器),点击创建configmap。至此,configmap配置文件创建完成。
2.新建服务中引用configmap变量
我们只需在创建部署任务时,在实例内容器中,在php实例中,点击引用Configmap/Secret,选择ConfigMap,选择wordpress-confv1,选择RUMTIME变量,填写别名(我这里填写的是RUNTIME)
3.验证
在pod管理中,点击远程登录,再点击登录,此时进入php容器控制台,执行echo RUNTIME输出dev,说明configmap配置的环境变量生效!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。