一.简单说明

我们在运行一个mysql服务时,mysql服务有两类重要的数据,一个是存储的数据、另一个是存储的配置文件。存储数据这里我们可以使用挂载PVC来实现持久化存储,配置文件这里我们如果实现和容器的解耦,可以采用configmap来实现。

二.ConfigMap介绍

2.1 ConfigMap作用和使用场景

  • ConfigMap用于保存配置数据,以键值对的形式存储
  • ConfigMap资源提供了向Pod注入配置数据的方法
  • ConfigMap旨在让镜像与配置文件解耦,以实现镜像的可移植性和可复用性。
  • 填充环境变量的值
  • 填充卷的配置文件

2.2 ConfigMap的创建

这里有以下几种创建方式:

  • 使用字面值创建
    kubectl create configmap my-configmap --from-literal=key1=1 --from-literal=key2=2
    [root@k8s001 ~]# kubectl get cm my-configmap -o yaml
    apiVersion: v1
    data:
    key1: "1"
    key2: "2"
    kind: ConfigMap
    metadata:
    creationTimestamp: "2020-08-11T03:54:00Z"
    name: my-configmap
    namespace: default
    resourceVersion: "4745970"
    selfLink: /api/v1/namespaces/default/configmaps/my-configmap
    uid: 4a277575-db86-11ea-bb5f-6c4b9005d934
  • 使用文件创建
    [root@k8s001 ~]# cat configmap-file
    10.10.2.2 k8s001
    [root@k8s001 ~]# kubectl create cm my-configmap-file --from-file=configmap-file
    configmap/my-configmap-file created
    [root@k8s001 ~]# kubectl get cm my-configmap-file -o yaml
    apiVersion: v1
    data:
    configmap-file: |
    10.10.2.2 k8s001
    kind: ConfigMap
    metadata:
    creationTimestamp: "2020-08-11T03:58:23Z"
    name: my-configmap-file
    namespace: default
    resourceVersion: "4747102"
    selfLink: /api/v1/namespaces/default/configmaps/my-configmap-file
    uid: e6c966b8-db86-11ea-bb5f-6c4b9005d934
  • 使用目录创建
    [root@k8s001 ~]# mkdir configmap-dir
    [root@k8s001 ~]# cp configmap-file ./configmap-dir/
    [root@k8s001 ~]# kubectl create cm myconfigmap-dir --from-file=configmap-dir
    configmap/myconfigmap-dir created
    [root@k8s001 ~]# kubectl get cm myconfigmap-dir -o yaml
    apiVersion: v1
    data:
    configmap-file: |
    10.10.2.2 k8s001
    kind: ConfigMap
    metadata:
    creationTimestamp: "2020-08-11T04:01:51Z"
    name: myconfigmap-dir
    namespace: default
    resourceVersion: "4748006"
    selfLink: /api/v1/namespaces/default/configmaps/myconfigmap-dir
    uid: 62fde3bb-db87-11ea-ab20-6c4b9005ca34
  • 编写ConfigMap的yaml文件来创建
    [root@k8s001 ~]# cat configmap_mysql.yaml
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: mysql-config
    namespace: business
    data:
    mysqld.cnf: |-
    [mysqld]
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    datadir = /var/lib/mysql
    symbolic-links = 0
    max_allowed_packet = 50M
    character_set_server = utf8
    collation_server = utf8_general_ci
    group_concat_max_len = 102400
    [client]
    default_character_set = utf8

2.3 如何使用ConfigMap

  • 可以通过环境变量的形式直接传递给Pod
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: wf-mysql
spec:
containers:
- image: mysql:5.7
imagePullPolicy: IfNotPresent
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
configMapKeyRef:
name: mysql-credentials
key: rootpw
- name: MYSQL_USER
valueFrom:
configMapKeyRef:
name: mysql-credentials
key: user
- name: MYSQL_PASSWORD
valueFrom:
configMapKeyRef:
name: mysql-credentials
key: password
  • 通过在Pod的命令行下运行命令方式
[k8s001 ~]# cat busybox.yaml
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: wf-mysql
spec:
containers:
- image: busybox
imagePullPolicy: IfNotPresent
command: ["/bin/sh", "-c", "echo ${test_env}"]
name: busybox
envFrom:
- configMapRef:
name: configmap-test
restartPolicy: Always
  • 作为volume的方式挂载到Pod内
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: wf-mysql
spec:
containers:
- image: mysql:5.7
imagePullPolicy: IfNotPresent
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-credentials
key: rootpw
- name: MYSQL_USER
valueFrom:
secretKeyRef:
name: mysql-credentials
key: user
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-credentials
key: password ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: config-volume
mountPath: /etc/mysql/mysql.conf.d
volumes:
- name: config-volume
configMap:
name: mysql-config

kubernetes之配置mysql的configmap的更多相关文章

  1. Kubernetes(k8s)配置文件管理:ConfigMap

    目录 一.系统环境 二.前言 三.ConfigMap概览 四.创建ConfigMap 五.ConfigMap的使用 5.1 以环境变量的方式使用ConfigMap 5.2 以卷的方式使用ConfigM ...

  2. Kubernetes 实战——配置应用(ConfigMap、Secret)

    配置容器化应用的方式:①命令行参数:②环境变量:③文件化配置 一.向容器传递命令行参数或环境变量 这两种方式在 Pod 创建后不可被修改 1. 在Docker中定义命令与参数 ENTRYPOINT:容 ...

  3. (转)Kubernetes部署WordPress+MySQL

    转:http://www.showerlee.com/archives/2336 这部分我们结合之前的k8s知识点给大家展示如何使用kubernetes部署wordpress+MySQL, 并利用NF ...

  4. kubernetes实战-配置中心(二)交付apollo配置中心到k8s

    apollo官网:官方地址 apollo架构图: apollo需要使用数据库,这里使用mysql,注意版本需要在5.6以上: 本次环境mysql部署在10.4.7.11上,使用mariadb:10.1 ...

  5. Ubuntu安装Wildfly(原JBoss)并为其配置MySQL分布式数据源

    注:JBoss在8.0版本后改名为WildFly,以JBoss命名的版本最高为7.1.1.Final,但JBoss7.1.1.Final不支持jdk1.8以上版本,如果在jdk1.8情况下安装JBos ...

  6. windows下安装并配置mysql

    前言:前面三篇文章将django的环境搭建完后,还只能编写静态网页,如果要用到数据库编写动态网页,那么还需要数据库 本章讲解mysql5.6数据库的安装和配置,对于其他版本仅供参考,不一定试用!推荐使 ...

  7. CentOS 7.2 安装配置mysql主从服务器

    MySQL官方压缩包安装: 1:下载mysql官方版本,此处以目前最新版本5.7.14为例,下载的64位版本文件为: mysql-5.7.14-linux-glibc2.5-x86_64.tar 2: ...

  8. OS 系统下安装MySql 配置MySql环境变量

    学习Hive需要,闲话不说 本文的内容: 下载Mysql for Mac 下载Mysql Workbench 安装 Mysql 和 Mysql Workbench 配置Mysql在OS 系统上的环境变 ...

  9. 配置MySQL数据库

    一.配置MySQL数据库 1.解压绿色版mysql,如下图 二.安装服务 1.运行cmd(管理员版本,否则没有权限),如下图 2.运行命令mysqld –install安装服务,如下图: 如果不需要m ...

  10. linux下配置mysql默认编码utf8

    linux下配置mysql默认编码utf8 下面是需要在对应地方加入的配置 [client] default-character-set=utf8 [mysqld] character-set-ser ...

随机推荐

  1. go ceph s3文件管理

    导入依赖 go get gopkg.in/amz.v1/aws go get gopkg.in/amz.v1/s3 创建用户 在初始化连接之前,我们需要创建一个用户得到accessKey和secret ...

  2. 查看、安装python指定版本的包、安装卸载第三方模块

    python安装/卸载第三方包 (1)安装第三方包: 安装指令pip install xxx (xxx,需安装的包名) 安装特定版本的package:通过使用==, >=, <=, > ...

  3. Docker镜像介绍

    一.Docker镜像介绍 镜像是Docker的三大核心概念之一. Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试先从默认的镜像仓库下载(默认使用Docker Hu ...

  4. 容器一直处于Create状态

    通过命令排查 docker inspect b5be1d9e71de报错 "Error": "Could not attach to network fabric-tbc ...

  5. List集合--java进阶day09

    1.List集合 以下面的例子来解释存储有序和存储重复 如上图,我们是怎么添加这些字符串的,打印的时候就是按照这个顺序打印的--存取有序 并且"张三"出现了两次,也存入了两次--存 ...

  6. 【Linux】3.5 实用指令

    实用指令 1. 指定运行级别(7个级别) 0.关机[一旦开机它就会执行关机] 1.单用户[找回丢失密码] 2.多用户状态没有网络服务 3.多用户状态有网络服务 4.系统未使用保留给用户 5.图形界面 ...

  7. idea的配置优化

    一.显示工具条 二.设置鼠标悬浮提示 三.显示方法分隔符 四.忽略大小写提示 五.主题设置 如果需要很好看的编码风格,这里有很多主题 http://color-themes.com/?view=ind ...

  8. SpringBoot3整合SpringSecurity6(一)快速入门

    大家好,我是晓凡. 写在前面 不知道小伙伴们在学SpringSecurity过程中有没有和我一样的经历和烦恼. ①看完一篇文章或者一个教程,感觉学会了.但是一到实际项目中就不知道怎么用: ②被Spri ...

  9. MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?

    MySQL InnoDB 引擎中的聚簇索引和非聚簇索引的区别 在 MySQL 的 InnoDB 存储引擎中,聚簇索引和非聚簇索引是两种常见的索引类型,它们在数据存储结构和使用场景上有显著区别. 1. ...

  10. fiddler的composer设计器

    1.过程:点击composer,把要修改请求体的会话拖到composer空白处,composer出现请求方式,url,请求报文,请求体 2.在请求体中修改请求内容(比如删除号码),然后点击excute ...