专栏首页TKETKE操作指南 - wordpress 容器配置项的使用(十二)
原创

TKE操作指南 - wordpress 容器配置项的使用(十二)

配置项概述

什么是配置项

配置用来规定一些程序在启动时读入设定,提供了一种修改程序设置的手段, 针对不同的对象可以使用不同的配置。

配置项是多个配置的集合,配置项的值可以是字符串,也可以是文件。 配置项支持YAML格式和可视化编辑, 单击查看 YAML 语法。 配置项只支持新增版本,不支持修改版本。

配置项有什么价值

  1. 使用配置项功能可以帮您管理不同环境、不同业务的配置,支持多版本,支持Yaml格式
  2. 方便您部署相同应用的不同环境,配置文件支持多版本,方便您进行更新和回滚应用
  3. 方便您快速将您的配置以文件的形式导入到容器中

配置文件的使用

使用方法一: 将配置项中的配置以数据卷的形式挂载到容器中 使用方法二: 创建服务时引用配置项环境变量

配置项以数据卷形式挂载到容器中

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配置的环境变量生效!

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TKE操作指南 - 自动化构建,生成Wordpress Docker业务镜像(五)

    通过持续集成与持续交付提供优秀的 DevOps 环境,极大提高软件发布效率。如下图所示:

    亮哥说TKE
  • TKE操作指南 - 创建wordpress CDB数据库(九)

    进入私有网络,展开安全栏目,点击安全组,点击添加规则,摸板选择自定义,填写名称和备注,项目默认即可,点击确定,在弹出的提醒窗口中,单击【立即设置规则】。

    亮哥说TKE
  • TKE操作指南 - 容器业务部署标准化总结(十六)

    /data/logs/$module_name($module_name指应用名,一般为java应用)

    亮哥说TKE
  • 间谍软件潜入Google Play

    研究人员发现了第一个已知的间谍软件,它建立在Ahmyth开源恶意软件的基础上,并绕过了谷歌的应用审查过程。这个恶意的应用程序叫做RadioBalouch,又称R...

    FB客服
  • 一个GISER 6.7的祝福

    一年一度的高考今天开始了,回想10年前,那是我第一次高考;10年后,作为一个GISER,在此给大家献上一个GISER的祝福,祝愿各位考生:考神附体,考完报考GI...

    lzugis
  • 深度剖析幽灵电子书 | 一双窥视安全人员的无形之眼

    0x01 事件经过 2016年2月26日,一个网络安全相关的QQ群内,一名用户分享了一份名为“网络安全宝典.chm”的电子书供大家下载,瑞星网络安全工程师Bfi...

    FB客服
  • 简单谈谈dart中几种Map的不同

    Dart有几种内置集合(Collections),比如Set,List以及Map。了解他们在实现上的优点与缺点有助于你去如何使用他们。

    JarvanMo
  • 聊聊skywalking的jvm-receiver-plugin

    skywalking-6.6.0/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugi...

    codecraft
  • 聊聊skywalking的jvm-receiver-plugin

    skywalking-6.6.0/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugi...

    codecraft
  • 跨平台的.NET邮件协议MailKit组件解析

        发起的.NET Core开源组织号召,进展的速度是我自己也没有想到的,很多园友都积极参与(虽然有些人诚心砸场子,要是以我以前的宝脾气,这会应该被我...

    彭泽0902

扫码关注云+社区

领取腾讯云代金券