ToB企服应用市场:ToB评测及商务社交产业平台
标题:
KubeSphere部署mysql
[打印本页]
作者:
光之使者
时间:
2024-10-14 18:55
标题:
KubeSphere部署mysql
演示示例利用的是3.4.1,各版本有名字差异 功能是一样的
由于mysql
必要做数据持久化以是必要挂载数据
1.创建mysql
底子设置
项目中-设置-设置字典
mysql
-conf
复制代码
添加键值对
[client]
default-character-set=utf8mb4
[mysql
]
default-character-set=utf8mb4
[mysql
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
复制代码
贴一下yaml设置
kind: ConfigMapapiVersion: v1metadata: name: mysql
-conf
namespace: gitee annotations: kubesphere.io/creator: admindata: my.cnf: | [client] default-character-set=utf8mb4 [mysql
] default-character-set=utf8mb4 [mysql
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挂载
项目-存储-持久卷声明
mysql
-pvc
复制代码
方式就选择默认
访问模式:单节点读写
大小:根据自己必要的数值增加,这里选择的是1Gb
然后直接下一步创建即可
yaml设置
kind: PersistentVolumeClaimapiVersion: v1metadata: name: mysql
-pvc
namespace: gitee annotations: kubesphere.io/creator: admin finalizers: - kubernetes.io/pvc-protectionspec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: local volumeMode: Filesystem
复制代码
3.创建工作负载
应用负载-工作负载
名称:
mysql
复制代码
添加容器利用的是本地私有镜像(私有镜像利用的是harbor,也可以利用其他镜像设置比较简单这里不详细说)
利用默认镜像端口并且同步主机时区
添加环境变量
设置数据库密码
MYSQL_ROOT_PASSWORD
首先挂载pvc做数据持久化
选择我们一开始创建的pvc
模式:读写
路径:/var/lib/mysql
注意:路径要一致不能错!!!
挂载设置文件
选择本教程最开始创建的字典数值
模式:只读
路径:/etc/mysql
/conf.d
注意:路径要一致不能错!!!
下一步直接创建即可(如果创建失败请查抄镜像是否能正常拉取)
yaml设置
kind: DeploymentapiVersion: apps/v1metadata: name: mysql
namespace: gitee labels: app: mysql
annotations: deployment.kubernetes.io/revision: '1' kubesphere.io/creator: adminspec: 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' 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
- name: volume-lg3r9w readOnly: 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.创建服务(创建服务后才能进行外部访问)
工作负载-服务-指定工作负载
访问模式:虚拟ip所在
工作负载:选择刚刚创建的mysql
端口:名字自己填写 容器端口3306 服务端口3306
勾选外部访问并且选择NodePort模式
创建乐成后这里的端口数据库毗连的时候会用到
5.测试mysql
是否能正常访问
服务器所在:集群ip
端口:刚刚创建乐成后的对外端口
数据库:sys
用户名:root
密码:创建工作负载时设置的MYSQL_ROOT_PASSWORD值,当时设置的是123456 以是这里就用123456登录(如果忘记就去工作负载里找)
设置应用路由(ingress)然后用域名访问不知道为什么利用自界说域名:3306 毗连不上数据库 以是直接用了NodePort
参考项目:KubeSphere部署Mysql有状态副本集
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4