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 ...
随机推荐
- dcgm-exporter:Collect Switch Metrics和Collect Link Metrics
在 DCGM(Data Center GPU Manager)中,"Collect Switch Metrics" 和 "Collect Link Metrics&quo ...
- JetBrains goland、pycharm、webstorm、phpstorm 对比两文件内容是否一致
对比文件 JetBrains goland.pycharm.webstorm.phpstorm 对比两文件内容是否一致 第一种 打开文件,按住键盘上的CTRL键,然后鼠标右键,点击菜单中的" ...
- AI Agent爆火后,MCP协议为什么如此重要!
什么是MCP? 模型上下文协议(Model Context Protocol, MCP)是一种专为机器学习模型服务设计的通信协议,旨在高效管理模型推理过程中的上下文信息(如会话状态.环境变量.动态配置 ...
- docker 版本号说明
17.03 版本以前 Docker CE 在 17.03 版本之前叫 Docker Engine, 版本说明参考这里 => Docker Engine release notes, 可以看到 D ...
- 数据结构-ArrayList-LinkedList--java进阶day09
1.数据结构 2.栈 详细流程:https://kdocs.cn/l/claZP6piLKDW?linkname=150996989 3.队 详细流程:https://kdocs.cn/l/claZP ...
- 【Java】String字符串格式化
一.前言 String.format() 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.format("Hello %s", &qu ...
- 超简单电脑本地部署deepseek,另附”一键使用脚本“撰写与联网使用方法
在电脑上部署deepseek,总共分三步 1.打开ollama官网点击Download按钮 2.在ollama官网搜索deepseek-r1模型,选择对应规模,并复制ollama命令,比如这里,我的o ...
- MySQL 中有哪些锁类型?
MySQL 中有哪些锁类型? 在 MySQL 中,锁是用于管理并发访问的机制,以保证数据一致性和完整性.MySQL 支持多种类型的锁,按照其粒度和用途可以分为以下几类. 1. 按粒度分类 表锁(Tab ...
- NetCAT:来自网络的实用缓存攻击
不断增加的外围设备正在增加现代处理器中内存管理子系统的压力,例如:DRAM的可用吞吐量已经不能满足现代网卡的传输速率.为了达到承诺的传输性能,Intel处理器使IO操作直接在末级缓存(LLC)上进行, ...
- Git Reset 彻底解析:--hard 模式操作步骤、风险与完整恢复指北
结论先行 使用 git reset --hard <commit_id> 可强制将本地代码.暂存区.工作目录彻底回退到指定提交状态,但会丢弃目标提交之后的所有提交记录(需谨慎操作,尤其涉及 ...