K8S集群部署MySql

挂载MySQL数据卷

在k8s集群中挂载MySQL数据卷 需要安装一个NFS。

在主节点安装NFS

  yum install -y nfs-utils rpcbind

在主节点创建目录

  mkdir -p /nfs

  chmod 777 /nfs

更改归属组与用户

  chown -R nfsnobody:nfsnobody /nfs

配置共享目录

  echo "/nfs *(insecure,rw,sync,no_root_squash)" > /etc/exports

创建mysql共享目录

  mkdir -p /nfs/mysql

启动服务

  systemctl start rpcbind

  systemctl start nfs

设置开启启动

  systemctl enable rpcbind

  systemctl enable nfs

0

检查配置是否生效

  exportfs

  showmount -e 192.168.91.129

0

创建MySQL Deployment

编写一个 mysql.yaml 配置文件:

apiVersion: apps/v1                             # apiserver的版本
kind: Deployment                                # 副本控制器deployment,管理pod和RS
metadata:name: mysql                                   # deployment的名称,全局唯一namespace: default                            # deployment所在的命名空间labels:app: mysql
spec:replicas: 1                                   # Pod副本期待数量selector:matchLabels:                                # 定义RS的标签app: mysql                                # 符合目标的Pod拥有此标签strategy:                                     # 定义升级的策略type: RollingUpdate                         # 滚动升级,逐步替换的策略template:                                     # 根据此模板创建Pod的副本(实例)metadata:labels:app: mysql                              # Pod副本的标签,对应RS的Selectorspec:nodeName: k8s-worker01                    # 指定pod运行在的nodecontainers:                               # Pod里容器的定义部分- name: mysql                           # 容器的名称image: mysql:5.7                      # 容器对应的docker镜像volumeMounts:                         # 容器内挂载点的定义部分- name: time-zone                   # 容器内挂载点名称mountPath: /etc/localtime         # 容器内挂载点路径,可以是文件或目录- name: mysql-datamountPath: /var/lib/mysql         # 容器内mysql的数据目录- name: mysql-logsmountPath: /var/log/mysql         # 容器内mysql的日志目录ports:- containerPort: 3306               # 容器暴露的端口号env:                                  # 写入到容器内的环境容量- name: MYSQL_ROOT_PASSWORD         # 定义了一个mysql的root密码的变量value: "root"volumes:                                  # 本地需要挂载到容器里的数据卷定义部分- name: time-zone                       # 数据卷名称,需要与容器内挂载点名称一致hostPath:path: /etc/localtime                # 挂载到容器里的路径,将localtime文件挂载到容器里,可让容器使用本地的时区- name: mysql-datahostPath:path: /data/mysql/data              # 本地存放mysql数据的目录- name: mysql-logshostPath:path: /data/mysql/logs              # 本地存入mysql日志的目录

将 mysql.yaml 配置文件上传至虚拟机的 /root 目录下,在 /root 目录下执行命令:

  kubectl create -f mysql.yaml

0

执行添加服务的命令(这行不执行应该也不影响结果):

  kubectl apply -f mysql.yaml

0

编写一个提供对外访问的service mysql-svc.yaml:

apiVersion: v1
kind: Service
metadata:name: mysqllabels:name: mysql
spec:type: NodePortports:- port: 3306targetPort: 3306nodePort: 30001selector:app: mysql

将 mysql-svc.yaml 配置文件上传至虚拟机的 /root 目录下,在 /root 目录下执行命令:

  kubectl create -f mysql-svc.yaml

0

访问数据库并验证其运行正常

  kubectl get pod

0

kubectl exec -it mysql-999dcb98f-srxff -- mysql -u root -p

(密码也是root)

0

mysql开放远程连接:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

flush privileges;        #刷新权限表,使配置生效

开启防火墙端口

systemctl start firewalld.service

firewall-cmd --zone=public --add-port=6443/tcp --permanent

firewall-cmd --zone=public --add-port=30001/tcp --permanent

firewall-cmd --reload

firewall-cmd --zone=public --list-ports

systemctl stop firewalld.service

systemctl disable firewalld.service

要开放6443端口(k8s集群连接地址)和30001端口(k8s集群mysql端口)

查看已安装的mysql

kubectl get pod

0

kubectl get svc

0

mysql服务安装在default命名空间中,查看其所在节点:

kubectl get pod -n default -o wide

0

此次部署的mysql服务被我们指定运行在了 k8s-worker01 节点上。

在本地用SQLyog连接到k8s集群的mysql:

0

0

创建一个名为 test 的数据库:

0

将本地数据导入搭建好的mysql服务器-test数据库:

0

0

可以看到,数据已成功导入。

在k8s集群中查看mysql数据库:

0

可看到中文数据出现乱码问题。

查看数据库的字符编码类型:

show variables like '%char%';

0

将查询结果集设置为utf8后再查看数据:

set character_set_results=utf8;

0

已经可以正常显示中文了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/592378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux操作系统基础(3):Linux终端的使用

1. Linux终端的介绍 Linux 终端是指在 Linux 操作系统下用于与用户进行交互的命令行界面(基于文本的交互)。它是用户与操作系统进行直接交互的主要方式,可以通过输入命令来执行各种操作,如文件管理、进程控制、系统配置等。 Lin…

【WPF.NET开发】WPF中的输入

本文内容 输入 API事件路由处理输入事件文本输入触摸和操作侧重点鼠标位置鼠标捕获命令输入系统和基元素 Windows Presentation Foundation (WPF) 子系统提供了一个功能强大的 API,用于从各种设备(包括鼠标、键盘、触摸和触笔)获取输入。 本…

CTF流量分析经典例题详解

目录 入门题型 题目:Cephalopod(图片提取) 题目:特殊后门(icmp协议信息传输) 题目:手机热点(蓝牙传输协议obex,数据提取) 题目:想蹭网先解开密码(无线密码破解) 进阶题型 题目:抓到一只苍蝇(数据包筛选,数据提…

蓝牙物联网智能车用语音控制系统模块设计

随着信息产业的快速发展,简单的控制操作机器已经不能满足人类的欲望,利用语音识别技术让机器理解人类的语言,以及实现人机交互成为新的研究内容。对用户来说,这种人机交互的方式当是最自然的一种方式。同时,使人们在车…

【Java开发岗面试】八股文—Java虚拟机(JVM)

声明: 背景:本人为24届双非硕校招生,已经完整经历了一次秋招,拿到了三个offer。本专题旨在分享自己的一些Java开发岗面试经验(主要是校招),包括我自己总结的八股文、算法、项目介绍、HR面和面试…

小球自由下落-第11届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第23讲。 小球自由下落&…

第一个Qt程序----Hello word!

从今天起就开始我们的第一个Qt小程序,点击New Project后点击右侧的Application后点击Qt Widgets Application。Qt Widgets 模块提供了一组UI元素用于创建经典的桌面风格的用户界面,Widgets是小部件的意思,也可以称为控件,因此Qt …

粒子群优化pso结合bp神经网络优化对csv文件预测matlab(3)

1.csv数据为密西西比数据集,获取数据集可以管我要,数据集内容形式如下图: 2.代码 这里参考的是b站的一位博主。 数据集导入教程在我的另一篇文章bp写过,需要的话可以去看一下 psobp.m close all clc%读取数据 inputX; outputY;…

(学习打卡2)重学Java设计模式之六大设计原则

前言:听说有本很牛的关于Java设计模式的书——重学Java设计模式,然后买了(*^▽^*) 开始跟着小傅哥学Java设计模式吧,本文主要记录笔者的学习笔记和心得。 打卡!打卡! 六大设计原则 (引读:这里…

K8S本地开发环境-minikube安装部署及实践

引言 在上一篇介绍了k8s的入门和实战,本章就来介绍一下在windows环境如何使用minikube搭建K8s集群,好了废话不多说,下面就和我一起了解Minikube吧。 什么是Minikube? Minikube 是一种轻量级的 Kubernetes 实现,可在本…

【docker】安装 Redis

查看可用的 redis版本 docker search redis拉取 redis最新镜像 docker pull redis:latest查看本地镜像 docker images创建挂在文件 mkdir -pv /test1/docker_volume/redis/datamkdir -pv /test1/docker_volume/redis/confcd /test1/docker_volume/redis/conf/touch redis.con…

IPC之十二:使用libdbus在D-Bus上异步发送/接收信号的实例

IPC 是 Linux 编程中一个重要的概念,IPC 有多种方式,本 IPC 系列文章的前十篇介绍了几乎所有的常用的 IPC 方法,每种方法都给出了具体实例,前面的文章里介绍了 D-Bus 的基本概念以及调用远程方法的实例,本文介绍 D-Bus…

[Angular] 笔记 23:Renderer2 - ElementRef 的生产版本

chatgpt: Renderer2 简介 在 Angular 中,Renderer2 是一个服务,用于处理 DOM 操作的抽象层。它提供了一种安全的方式来操作 DOM,同时与平台无关,有助于维护应用程序的跨浏览器兼容性和安全性。 Renderer2 的作用是在 Angular 组…

【C++】浅拷贝 / 深拷贝 / 写时拷贝

文章目录 1. 经典的string类问题2. 浅拷贝3. 深拷贝3.1 传统写法的String类3.2 现代写法的String类 4. 写时拷贝 1. 经典的string类问题 上一篇博客已经对string类进行了简单的介绍,大家只要能够正常使用即可。 链接:【C】string 在面试中,面…

20 太空漫游

效果演示 实现了一个太空漫游的动画效果,其中包括火箭、星星和月亮。当鼠标悬停在卡片上时,太阳和星星会变成黄色,火箭会变成飞机,月亮会变成小型的月亮。整个效果非常炫酷,可以让人想起科幻电影中的太空漫游。 Code &…

计算机网络(7):网络安全

网络安全问题 计算机网络上的通信面临以下的四种威胁: (1)截获(interception)攻击者从网络上窃听他人的通信内容。 (2)中断(interruption)攻击者有意中断他人在网络上的通信。 (3)篡改(modification)攻击者故意篡改网络上传送的报文。 (4)伪造(fabrication)攻击者伪造信息在网…

C# WinForm MessageBox自定义按键文本 COM组件版

c# 更改弹窗MessageBox按钮文字_c# messagebox.show 字体-CSDN博客 需要用到大佬上传到百度云盘的Hook类,在大佬给的例子的基础上改动了点。 加了ok按键,还原了最基础的messageBox。 为了适配多语言,增加ReadBtnLanguge方法。 应用时自己…

开发辅助三(缓存Redisson分布式锁+分页插件)

缓存 缓存穿透:查询一个不存在的数据,由于缓存不命中,将大量查询数据库,但是数据库也没有此记录。 没有将这次查询的null写入缓存,导致了这个不存在的数据每次请求都要到存储层查询,失去了缓存的意义。 解…

复试 || 就业day02(2024.01.02)项目一

文章目录 前言最小二乘法的推导使用正规方程求解 y w x b ywxb ywxb多元线性回归 y w 1 x 1 w 2 x 2 b yw1x1w2x2b yw1x1w2x2b总结 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容来自某机构网课&#xff…