KubeSphere部署mysql

打印 上一主题 下一主题

主题 879|帖子 879|积分 2637

演示示例利用的是3.4.1,各版本有名字差异 功能是一样的

由于mysql
必要做数据持久化以是必要挂载数据


1.创建mysql
底子设置


项目中-设置-设置字典
  1. mysql
  2. -conf
复制代码

添加键值对
  1. [client]
  2. default-character-set=utf8mb4
  3. [mysql
  4. ]
  5. default-character-set=utf8mb4
  6. [mysql
  7. d]
  8. init_connect='SET collation_connection = utf8mb4_unicode_ci'
  9. init_connect='SET NAMES utf8mb4'
  10. character-set-server=utf8mb4
  11. collation-server=utf8mb4_unicode_ci
  12. skip-character-set-client-handshake
  13. skip-name-resolve
复制代码

贴一下yaml设置
  1. kind: ConfigMapapiVersion: v1metadata:  name: mysql
  2. -conf
  3.   namespace: gitee  annotations:    kubesphere.io/creator: admindata:  my.cnf: |    [client]    default-character-set=utf8mb4    [mysql
  4. ]    default-character-set=utf8mb4    [mysql
  5. d]    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挂载

项目-存储-持久卷声明
  1. mysql
  2. -pvc
复制代码

方式就选择默认
访问模式:单节点读写
大小:根据自己必要的数值增加,这里选择的是1Gb
然后直接下一步创建即可

yaml设置
  1. kind: PersistentVolumeClaimapiVersion: v1metadata:  name: mysql
  2. -pvc
  3.   namespace: gitee  annotations:    kubesphere.io/creator: admin  finalizers:    - kubernetes.io/pvc-protectionspec:  accessModes:    - ReadWriteOnce  resources:    requests:      storage: 1Gi  storageClassName: local  volumeMode: Filesystem
复制代码
3.创建工作负载

应用负载-工作负载
名称:
  1. mysql
复制代码

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

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

添加环境变量
设置数据库密码
MYSQL_ROOT_PASSWORD


首先挂载pvc做数据持久化
选择我们一开始创建的pvc
模式:读写
路径:/var/lib/mysql

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

挂载设置文件
选择本教程最开始创建的字典数值
模式:只读
路径:/etc/mysql
/conf.d
注意:路径要一致不能错!!!

下一步直接创建即可(如果创建失败请查抄镜像是否能正常拉取)
yaml设置
  1. kind: DeploymentapiVersion: apps/v1metadata:  name: mysql
  2.   namespace: gitee  labels:    app: mysql
  3.   annotations:    deployment.kubernetes.io/revision: '1'    kubesphere.io/creator: adminspec:  replicas: 1  selector:    matchLabels:      app: mysql
  4.   template:    metadata:      creationTimestamp: null      labels:        app: mysql
  5.       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
  6. -pvc
  7.         - name: volume-lg3r9w          configMap:            name: mysql
  8. -conf
  9.             defaultMode: 420      containers:        - name: container-hrnhuh          image: '192.168.21.234:81/tools/mysql
  10. :8.0.3'          ports:            - name: tcp-3306              containerPort: 3306              protocol: TCP          env:            - name: MYSQL_ROOT_PASSWORD              value: '123456'          resources:            limits:              cpu: '1'              memory: 1Gi            requests:              cpu: '1'              memory: 1Gi          volumeMounts:            - name: host-time              readOnly: true              mountPath: /etc/localtime            - name: volume-ve0oq2              mountPath: /var/lib/mysql
  11.             - name: volume-lg3r9w              readOnly: true              mountPath: /etc/mysql
  12. /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.创建服务(创建服务后才能进行外部访问)

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


访问模式:虚拟ip所在
工作负载:选择刚刚创建的mysql

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

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

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

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


服务器所在:集群ip
端口:刚刚创建乐成后的对外端口
数据库:sys
用户名:root
密码:创建工作负载时设置的MYSQL_ROOT_PASSWORD值,当时设置的是123456 以是这里就用123456登录(如果忘记就去工作负载里找)

设置应用路由(ingress)然后用域名访问不知道为什么利用自界说域名:3306 毗连不上数据库 以是直接用了NodePort
参考项目:KubeSphere部署Mysql有状态副本集

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表