首页 > 分享 > 在k8s集群中创建mysql并且导入数据库

在k8s集群中创建mysql并且导入数据库

原创 已于 2023-11-27 18:01:57 修改 · 540 阅读

· 0

· 0 ·

CC 4.0 BY-SA版权

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

于 2023-11-27 16:13:25 首次发布

在k8s集群中创建mysql并且导入数据库

创建mysql

方式一:

通过kuboard工具创建

参考:1.部署一个应用程序 | Kuboard

在容器信息中创建端口号:3306

创建环境变量: MYSQL_ROOT_PASSWORD = root # mysql密码 MYSQL_ROOT_USERNAME = root # mysql的账户

创建服务/应用

第三步:设置挂载路径

还应该做一个存储卷——不然导入数据无法保存(做一个存储类——》PV——》PVC)

方式二:编写yml文件方式创建mysql的pod

--- apiVersion: apps/v1 kind: Deployment metadata: annotations: {} labels:   app: mysql   k8s.kuboard.cn/layer: cloud   k8s.kuboard.cn/name: mysql name: mysql namespace: mall4cloud     # 命名空间 resourceVersion: '5531414' spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector:   matchLabels:     app: mysql strategy:   rollingUpdate:     maxSurge: 25%     maxUnavailable: 25%   type: RollingUpdate template:   metadata:     creationTimestamp: null     labels:       app: mysql   spec:     containers:       - env:           - name: MYSQL_ROOT_PASSWORD     # 设置mysql的root密码             value: root           - name: MYSQL_ROOT_USER             value: root         image: 'mysql:8.0'         imagePullPolicy: IfNotPresent         name: mysql         ports:           - containerPort: 3306             protocol: TCP         resources: {}         terminationMessagePath: /dev/termination-log         terminationMessagePolicy: File         volumeMounts:           - mountPath: /sql-file.sql             name: sql-volume     dnsPolicy: ClusterFirst     nodeName: worker-1     restartPolicy: Always     schedulerName: default-scheduler     securityContext: {}     terminationGracePeriodSeconds: 30     volumes:       - hostPath:           path: /mall4cloud/mall4cloud/db/mall4cloud-all.sql    # 数据库文件的本地路径           type: ''         name: sql-volume ​ --- apiVersion: v1 kind: Service metadata: annotations: {} labels:   app: mysql   k8s.kuboard.cn/layer: cloud   k8s.kuboard.cn/name: mysql name: mysql namespace: mall4cloud resourceVersion: '5527744' spec: clusterIP: 10.233.64.192 clusterIPs:   - 10.233.64.192 internalTrafficPolicy: Cluster ipFamilies:   - IPv4 ipFamilyPolicy: SingleStack ports:   - name: mh2awi     port: 3306     protocol: TCP     targetPort: 3306 selector:   app: mysql sessionAffinity: None type: ClusterIP

kubectl apply -f xxx.yml  -n mall4cloud        # 执行yml文件 [root@master ~]# kubectl get po -n mall4cloud     # 查看Pod是否创建 NAME                                             READY   STATUS             RESTARTS         AGE mysql-0                                          1/1     Running            0                 15m 导入数据库文件

[root@master ~]# kubectl exec -it mysql-0 /bin/bash -n mall4cloud kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. bash-4.4# mysql -u root -p               # 登录数据库 Enter password:             # 输入数据库密码——尽量复杂一点 Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 33 Server version: 8.0.35 MySQL Community Server - GPL ​ Copyright (c) 2000, 2023, Oracle and/or its affiliates. ​ Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. ​ Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. ​ mysql> mysql> show databases;     # 查看数据库 +--------------------+ | Database           | +--------------------+ | information_schema | | mysql             | | performance_schema | | sys               | +--------------------+ mysql> create database mall4cloud;   # 创建数据库 Query OK, 1 row affected (0.00 sec) mysql> use mall4cloud;     # 切换数据库 Database changed mysql> source /mysql/sql-file.sql    # 导入数据库文件

问题:此方法不能永久存储数据,当worker服务器节点重启后,数据将会被清空。

补充:

在Kubernetes集群中,当Worker节点重启后,集群会自动将该节点上的Pod重新调度到其他可用的节点上。这意味着Pod的状态可能会发生变化,包括容器的重新创建和启动。

具体来说,当Worker节点重启后,以下情况可能会发生:

Pod被重新调度:由于节点已经从集群中移除,所有在该节点上的Pod将被重新调度到其他可用的节点上。这可能会导致Pod的IP地址发生变化,以及其他网络配置的更改。

容器重新创建:在重新调度期间,Pod中的所有容器将被重新创建。这可能会导致容器的状态发生变化,例如容器内部的配置和数据的丢失。

容器重新启动:在重新调度后,至少有一个容器将在重新启动的状态下运行。这可能会导致短暂的服务中断或性能下降。

数据丢失:由于容器重新创建和重新启动,Pod中的任何临时数据可能会丢失。因此,在Worker节点重启后,需要确保Pod的数据持久化存储或备份以避免数据丢失。

需要注意的是,Kubernetes集群会自动处理Pod的重新调度和容器的重新创建和启动,以确保Pod的高可用性和容错性。但是,在Worker节点重启后,需要确保Pod的配置和数据正确性以避免潜在的问题。

相关知识

在k8s集群中创建mysql并且导入数据库
使用Pod创建MySQL数据库实例(用pod创建mysql)
kuborad 部署mysql
宠物商店mysql数据库设计
mysql数据库知识点整理1,2(自用笔记)
宠物店管理系统mysql
JAVA计算机毕业设计宠物医院管理系统计算机(附源码、数据库)
管理MySQL
宠物商城网站设计实现教程:SpringBoot+Vue源码及数据库
推荐几款炫酷的 MySQL 可视化管理工具!好用到爆!

网址: 在k8s集群中创建mysql并且导入数据库 https://m.mcbbbk.com/newsview1335147.html

所属分类:萌宠日常
上一篇: 宠物补血口服液宠物营养补充剂定制
下一篇: 使用Pod创建MySQL数据库实