kubernetes之配置mysql的configmap
一.简单说明
我们在运行一个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的更多相关文章
- Kubernetes(k8s)配置文件管理:ConfigMap
目录 一.系统环境 二.前言 三.ConfigMap概览 四.创建ConfigMap 五.ConfigMap的使用 5.1 以环境变量的方式使用ConfigMap 5.2 以卷的方式使用ConfigM ...
- Kubernetes 实战——配置应用(ConfigMap、Secret)
配置容器化应用的方式:①命令行参数:②环境变量:③文件化配置 一.向容器传递命令行参数或环境变量 这两种方式在 Pod 创建后不可被修改 1. 在Docker中定义命令与参数 ENTRYPOINT:容 ...
- (转)Kubernetes部署WordPress+MySQL
转:http://www.showerlee.com/archives/2336 这部分我们结合之前的k8s知识点给大家展示如何使用kubernetes部署wordpress+MySQL, 并利用NF ...
- kubernetes实战-配置中心(二)交付apollo配置中心到k8s
apollo官网:官方地址 apollo架构图: apollo需要使用数据库,这里使用mysql,注意版本需要在5.6以上: 本次环境mysql部署在10.4.7.11上,使用mariadb:10.1 ...
- Ubuntu安装Wildfly(原JBoss)并为其配置MySQL分布式数据源
注:JBoss在8.0版本后改名为WildFly,以JBoss命名的版本最高为7.1.1.Final,但JBoss7.1.1.Final不支持jdk1.8以上版本,如果在jdk1.8情况下安装JBos ...
- windows下安装并配置mysql
前言:前面三篇文章将django的环境搭建完后,还只能编写静态网页,如果要用到数据库编写动态网页,那么还需要数据库 本章讲解mysql5.6数据库的安装和配置,对于其他版本仅供参考,不一定试用!推荐使 ...
- CentOS 7.2 安装配置mysql主从服务器
MySQL官方压缩包安装: 1:下载mysql官方版本,此处以目前最新版本5.7.14为例,下载的64位版本文件为: mysql-5.7.14-linux-glibc2.5-x86_64.tar 2: ...
- OS 系统下安装MySql 配置MySql环境变量
学习Hive需要,闲话不说 本文的内容: 下载Mysql for Mac 下载Mysql Workbench 安装 Mysql 和 Mysql Workbench 配置Mysql在OS 系统上的环境变 ...
- 配置MySQL数据库
一.配置MySQL数据库 1.解压绿色版mysql,如下图 二.安装服务 1.运行cmd(管理员版本,否则没有权限),如下图 2.运行命令mysqld –install安装服务,如下图: 如果不需要m ...
- linux下配置mysql默认编码utf8
linux下配置mysql默认编码utf8 下面是需要在对应地方加入的配置 [client] default-character-set=utf8 [mysqld] character-set-ser ...
随机推荐
- go ceph s3文件管理
导入依赖 go get gopkg.in/amz.v1/aws go get gopkg.in/amz.v1/s3 创建用户 在初始化连接之前,我们需要创建一个用户得到accessKey和secret ...
- 查看、安装python指定版本的包、安装卸载第三方模块
python安装/卸载第三方包 (1)安装第三方包: 安装指令pip install xxx (xxx,需安装的包名) 安装特定版本的package:通过使用==, >=, <=, > ...
- Docker镜像介绍
一.Docker镜像介绍 镜像是Docker的三大核心概念之一. Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试先从默认的镜像仓库下载(默认使用Docker Hu ...
- 容器一直处于Create状态
通过命令排查 docker inspect b5be1d9e71de报错 "Error": "Could not attach to network fabric-tbc ...
- List集合--java进阶day09
1.List集合 以下面的例子来解释存储有序和存储重复 如上图,我们是怎么添加这些字符串的,打印的时候就是按照这个顺序打印的--存取有序 并且"张三"出现了两次,也存入了两次--存 ...
- 【Linux】3.5 实用指令
实用指令 1. 指定运行级别(7个级别) 0.关机[一旦开机它就会执行关机] 1.单用户[找回丢失密码] 2.多用户状态没有网络服务 3.多用户状态有网络服务 4.系统未使用保留给用户 5.图形界面 ...
- idea的配置优化
一.显示工具条 二.设置鼠标悬浮提示 三.显示方法分隔符 四.忽略大小写提示 五.主题设置 如果需要很好看的编码风格,这里有很多主题 http://color-themes.com/?view=ind ...
- SpringBoot3整合SpringSecurity6(一)快速入门
大家好,我是晓凡. 写在前面 不知道小伙伴们在学SpringSecurity过程中有没有和我一样的经历和烦恼. ①看完一篇文章或者一个教程,感觉学会了.但是一到实际项目中就不知道怎么用: ②被Spri ...
- MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?
MySQL InnoDB 引擎中的聚簇索引和非聚簇索引的区别 在 MySQL 的 InnoDB 存储引擎中,聚簇索引和非聚簇索引是两种常见的索引类型,它们在数据存储结构和使用场景上有显著区别. 1. ...
- fiddler的composer设计器
1.过程:点击composer,把要修改请求体的会话拖到composer空白处,composer出现请求方式,url,请求报文,请求体 2.在请求体中修改请求内容(比如删除号码),然后点击excute ...