开发者

KubeSphere部署mysql的详细步骤

目录
  • 1.创建mysql基础配置
  • 2.创建pvc挂载
  • 3.创建工作负载
  • 4.创建服务(创建服务后才能进行外部访问)
  • 5.测试mysql是否能正常访问

演示示例使用的是3.4.1,各版本有名字差异 功能是一样的 由于mysql需要做数据持久化所以需要挂载数据

1.创建mysql基础配置

项目中-配置-配置字典

mysql-conf

KubeSphere部署mysql的详细步骤

添加键值对

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

KubeSphere部署mysql的详细步骤

贴一下yaml配置

kind: ConfigMap
apiVersion: v1
metadata:
  name: mysql-conf
  namespace: gitee
  annotatiohttp://www.devze.comns:
    kubesphere.io/creator: admin
data:
  my.cnf: |
    [client]
    default-character-set=utf8mb4
    [mysql]
    www.devze.comdefault-character-set=utf8mb4
    [mysqld]
    init_connect='SET collation_connection = utf8mb4_unicode_ci'
    init_connect='SET NAMES utf8mb4'
    character-set-server=utf8mb4
    collation-server=utf8mb4_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve

2.创建pvc挂载

项目-存储-持久卷声明

mysql-pvc

KubeSphere部署mysql的详细步骤

方式就选择默认

访问模式:单节点读写

大小:根据自己需要的数值增加,这里选择的是1Gb

然后直接下一步创建即可

KubeSphere部署mysql的详细步骤

yaml配置

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: mysql-pvc
  namespace: gitee
  annotations:
    kubesphere.io/creator: admin
  finalizers:
    - kubernetes.io/pvc-protection
spec:
  AccessModes:
    - ReadwriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: local
  volumeMode: Filesystem

3.创建工作负载

应用负载-工作负载

名称:

mysql

KubeSphere部署mysql的详细步骤

添加容器使用的是本地私有镜像(私有镜像使用的是harbor,也可以使用其他镜像配置比较简单这里不详细说)

KubeSphere部署mysql的详细步骤

使用默认镜像端口并且同步主机时区

KubeSphere部署mysql的详细步骤

添加环境变量

设置数据库密码

MYSQL_ROOT_PASSWORD

KubeSphere部署mysql的详细步骤

KubeSphere部署mysql的详细步骤

首先挂载pvc做数据持久化

选择我们一开始创建的pvc

模式:读写

路径:/var/lib/mysql

注意:路径要一致不能错!!!

KubeSphere部署mysql的详细步骤

挂载配置文件

选择本教程最开始创建的字典数值

模式:只读

路径:/etc/mysql/conf.d

注意:路径要一致不能错!!!

KubeSphere部署mysql的详细步骤

下一步直接创建即可(如果创建失败请检查镜像是否能正常拉取)

yaml配置

kind: Deployment
apiVersion: apps/v1
metadata:
  name: mysql
  namespace: gitee
  labels:
    app: mysql
  annotations:
    deployment.kubernetes.io/revision: '1'
    kubesphere.io/creator: admin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: mysql
      annotations:
        kubesphere.io/creator: admin
        kubesphere.io/imagepullsecrets: '{"container-hrnhuh":"harbor"}'
        logging.kubesphere.io/logsidecar-config: '{}'
    spec:
      volumes:
        - name: host-time
          hostPath:
            path: /etc/localtime
            type: ''
        - name: volume-ve0oq2
          persistentVolumeClaim:
            claimName: mysql-pvc
        - name: volume-lg3r9w
          configMap:
            name: mysql-conf
            defaultMode: 420
      containers:
        - name: container-hrnhuh
          image: '192.168.21.234:81/tools/mysql:8.0.3'
         sMqOrmcQpF ports:
            - name: tcp-3306
              containerPort: 3306
              protocol: TCP
          env:
            - name: MYSQL_ROOT_PASSWORD
              value: '123456'
          resources:
            limits:
              cpu: '1'
              memory: 1Gi
            requests:
              cpu: '1'
              msMqOrmcQpFemory: 1Gi
          volumeMounts:
            - name: host-time
              readOnly: true
              mountPath: /etc/localtime
            - name: volume-ve0oq2
              mountPath: /var/lib/mysql
            - name: volume-lg3r9w
              rjseadOnly: true
              mountPath: /etc/mysql/conf.d
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      serviceAccountName: default
      serviceAccount: default
      securityContext: {}
      imagePullSecrets:
        - name: harbor
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

4.创建服务(创建服务后才能进行外部访问)

工作负载-服务-指定工作负载

KubeSphere部署mysql的详细步骤

KubeSphere部署mysql的详细步骤

访问模式:虚拟ip地址

工作负载:选择刚刚创建的mysql

端口:名字自己填写 容器端口3306 服务端口3306

KubeSphere部署mysql的详细步骤

勾选外部访问并且选择NodePort模式

KubeSphere部署mysql的详细步骤

创建成功后这里的端口数据库连接的时候会用到

KubeSphere部署mysql的详细步骤

5.测试mysql是否能正常访问

服务器地址:集群ip

端口:刚刚创建成功后的对外端口

数据库:sys

用户名:root

密码:创建工作负载时设置的MYSQL_ROOT_PASSWORD值,当时设置的是123456 所以这里就用123456登录(如果忘记就去工作负载里找)

KubeSphere部署mysql的详细步骤

设置应用路由(ingress)然后用域名访问不知道为什么使用自定义域名:3306 连接不上数据库 所以直接用了NodePort

参考项目:KubeSphere部署Mysql有状态副本集

到此这篇关于KubeSphere部署mysql的文章就介绍到这了,更多相关KubeSphere部署mysql内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新数据库

数据库排行榜