我的编程空间,编程开发者的网络收藏夹
学习永远不晚

k8s单机部署mysql

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

k8s单机部署mysql

前面我们学习了k8s入门系列文章,了解了k8s的一些基础概念以及怎么使用。本篇文章将进行一个小小的实战,使用k8s来部署单机版的mysql数据库,基本涵盖到前面讲到的Namespace、Pod、Deployment、Service、PV、PVC、Secret等资源对象。

我们先画一张结构图来表示整个部署的逻辑流程,如图所示:

图片

一、一步一步来规划

1.创建namespace,把mysql部署在单独的名称空间中

名称空间的用法可以参考文章:k8s入门之namespace(三)

kubectl create namespace dev
  • 1

2.创建持久卷PV,用来存储mysql数据文件

PV的用法可以参考文章:k8s入门之PV&PVC(八)

(1)定义一个容量大小为1GB的PV,挂载到/nfs/data/01目录,需手动创建该目录

mkdir -p /nfs/data/01
  • 1

(2)编写mysql-pv.yaml文件内容,要创建的pv对象名称:pv-1gi

如果要挂载在本地:

nfs:

        path: /nfs/data/01

改成

hostPath:

        path: /nfs/data/01

# 定义持久卷信息apiVersion: v1kind: PersistentVolumemetadata:  # pv是没有namespace属性的,它是一种跨namespace的共享资源  name: pv-1gispec:  capacity:    storage: 1Gi  accessModes:    - ReadWriteMany  # 存储类,具有相同存储类名称的pv和pvc才能进行绑定  storageClassName: nfs  nfs:    path: /nfs/data/01    server: 192.168.59.110

(3)创建该PV对象

kubectl create -f mysql-pv.yaml
  • 1

(4)查看创建结果

图片

3.创建持久卷声明PVC

PVC的用法可以参考文章:k8s入门之PV&PVC(八)

声明存储大小为1Gb的PVC资源,k8s会根据storageClassName存储类名称找到匹配的PV对象进行绑定。

(1)编写mysql-pvc.yaml文件内容,要创建的pvc对象名称是:mysql-pvc

# 定义mysql的持久卷声明信息apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: mysql-pvc  namespace: devspec:  accessModes:    - ReadWriteMany  resources:    requests:      storage: 1Gi  # 存储类,具有相同存储类名称的pv和pvc才能进行绑定  storageClassName: nfs

(2)创建该PVC对象

kubectl create -f mysql-pvc.yaml
  • 1

(3)查看创建结果

可以看到mysql-pvc对象已经和pv-1gi对象绑定上了。

图片

4.创建Secret对象用来保存mysql的root用户密码

Secret的用法可以参考文章:k8s入门之Secret(十)

(1)设置密码为123456,执行创建命令

kubectl create secret generic mysql-root-password --from-literal=password=123456 -n dev
  • 1

(2)查看创建结果

图片

5.创建Deployment和Service

Deployment的用法可以参考文章:k8s入门之Deployment(五)

Service的用法可以参考文章:k8s入门之Service(六)

(1)编辑mysql-svc.yaml文件内容

service使用NodePort类型,指定暴露的nodePort端口为31234,我们会在宿主机使用navicat客户端对mysql进行访问

# 定义mysql的DeploymentapiVersion: apps/v1kind: Deploymentmetadata:  labels:    app: mysql  name: mysql  namespace: devspec:  selector:    matchLabels:      app: mysql  template:    metadata:      labels:        app: mysql    spec:      containers:      - image: mysql:8.0        name: mysql        env:        - name: MYSQL_ROOT_PASSWORD          valueFrom:            secretKeyRef:              name: mysql-root-password              key: password          # 如果你不想使用secret对象保存mysql登录密码,可以直接使用下面的方式指定,简单粗暴未尝不可              #value: "123456"        ports:        - containerPort: 3306        volumeMounts:        - name: mysqlvolume          mountPath: /var/lib/mysql      volumes:      - name: mysqlvolume        # 使用pvc        persistentVolumeClaim:          claimName: mysql-pvc---#定义mysql的ServiceapiVersion: v1kind: Servicemetadata:  labels:    app: svc-mysql  name: svc-mysql  namespace: devspec:  selector:    app: mysql  type: NodePort  ports:  - port: 3306    protocol: TCP    targetPort: 3306    nodePort: 31234

(2)执行创建命令

kubectl create -f mysql-svc.yaml
  • 1

(3)查看创建结果

可以看到mysql的pod已处于运行状态

图片

二、测试

在宿主机通过Navicat客户端来连接部署好的mysql服务,IP是三台虚拟节点的任意一台IP,端口是在创建Service时手动指定的31234。

1.连接数据库服务

图片

2.创建数据库与表数据

图片

3.查看nfs目录

图片

4.你可以删掉服务,然后重新创建,之前的mysql数据并不会丢失

图片

图片

文章知识点与官方知识档案匹配,可进一步学习相关知识

云原生入门技能树容器编排(生产环境 k8s)kubelet,kubectl,kubeadm三件套13920 人正在系统学习中

来源地址:https://blog.csdn.net/tankpanv/article/details/131757884

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

k8s单机部署mysql

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

k8s 实战篇 - mysql部署 - 1

在项目的开发中肯定是需要使用数据库进行数据化持久操作。在JAVA项目中使用比较多的数据库是mysql,这篇文章主要描述怎么在k8s中安装mysql数据库。 mysql部署 1、获取mysql镜像 可以在dockerhub中搜索镜像地址
2023-08-19

k8s部署mysql主从怎么切换

要实现Kubernetes下的MySQL主从切换,可以按照以下步骤进行操作:首先,创建MySQL主从的Deployment和Service。在Kubernetes中,可以使用StatefulSet来创建有状态的MySQL实例。可以创建一个S
2023-10-27

k8s单节点部署的方法是什么

要在Kubernetes上部署单节点集群,可以按照以下步骤进行操作:安装Docker:首先,需要在节点上安装Docker。可以按照Docker官方文档提供的步骤进行安装。安装kubectl:kubectl是Kubernetes命令行工具,用
2023-10-27

k8s下mysql容器集群怎么部署

在Kubernetes下部署MySQL容器集群可以使用StatefulSet来管理。下面是一个示例:1. 创建一个MySQL配置文件`mysql-configmap.yaml`,其中包含MySQL的配置信息:```yamlapiVersio
2023-09-23

Docker中如何部署k8s

这篇文章主要介绍Docker中如何部署k8s,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!拓扑结构1master + 2minionk8s-master 192.168.0.201 masterk8s-node1 1
2023-06-07

linux中怎么部署k8s

在Linux上部署Kubernetes(K8s)可以按照以下步骤进行操作:安装Docker:K8s使用Docker作为容器运行时环境,因此首先需要在Linux上安装Docker。可以通过在终端中运行以下命令来安装:sudo apt upd
2023-10-27

云服务器部署k8s

云服务器部署K8S可以从以下几个方面入手:选择适当的操作系统、操作系统版本:选择适合自己机器的操作系统版本,确保机器配置、网络连接状况、数据备份等方面的正确性。在选择操作系统时,建议选择Windows操作系统、Linux操作系统以及IronMountainServer这类开源操作系统。选择适当的虚拟机和容器:虚拟机可以提供更好的性能、更高的安全性和可靠性,容器则是更灵活的部署方式,可以按需
2023-10-26

k8s怎么部署nginx集群

要部署一个nginx集群,首先需要安装和配置Kubernetes(k8s)环境。以下是部署一个简单nginx集群的步骤:1. 安装和配置Kubernetes集群:按照官方文档的指导,安装和配置一个Kubernetes集群。2. 创建一个ng
2023-10-23

最简单的k8s集群部署方法是什么

最简单的Kubernetes集群部署方法是使用工具如kubeadm、minikube或者k3s。这些工具能够自动化地在单个节点或者多个节点上部署一个简单的Kubernetes集群。1. 使用kubeadm: - 安装Docker或者co
2023-09-27

编程热搜

目录