openshift mysql_openshift 部署主备mysql

一、概述

openshift容器平台提供MySQL的容器镜像,这个镜像提供基于配置文件的用户名、密码、数据库名称的数据库服务,当前openshift平台支持的mysql版本有:5.5\5.6\5.7。这些镜像有两种类型,一种是基于RHEL 7;一种是基于CentOS 7。

RHEL 7基础镜像下载方式:$ docker pull registry.access.redhat.com/openshift3/mysql-55-rhel7

$ docker pull registry.access.redhat.com/rhscl/mysql-56-rhel7

$ docker pull registry.access.redhat.com/rhscl/mysql-57-rhel7123

CentOS 7基础镜像下载方式:$ docker pull openshift/mysql-55-centos7$ docker pull openshift/mysql-56-centos712

二、配置和使用

初始化数据库:$ oc new-app \

-e MYSQL_USER= \    -e MYSQL_PASSWORD= \    -e MYSQL_DATABASE= \    registry.access.redhat.com/openshift3/mysql-55-rhel712345mysql -u $MYSQL_USER -p$MYSQL_PASSWORD -h $HOSTNAME $MYSQL_DATABASE1

三、环境变量说明变量说明MYSQL_USER数据库登录用户名

MYSQL_PASSWORD数据库登录密码

MYSQL_DATABASE数据库名称

MYSQL_ROOT_PASSWORDroot用户密码;如该不设置,远程登录会被拒绝,本地登录不需要密码

MYSQL_SERVICE_HOSTKubernetes自动创建的服务主机名

MYSQL_SERVICE_PORTKubernetes自动创建的服务主机端口

四、Volume挂载点/var/lib/mysql/data

上面的路径是mysql数据存储目录,可用于持久化存储设置的路径。

五、mysql 主备方案

下面我们一步一步创建一个主备mysql集群,首先导入openshift官网提供的mysql模板,命令如下:oc create -f \    https://raw.githubusercontent.com/openshift/mysql/master/5.5/examples/replica/mysql_replica.json12

mysql 主备方案需要两个部署配置文件,一个是master的DC文件,一个是slave的DC文件。创建mysql主节点的DC文件

要设置mysql服务作为master节点运行,DC配置文件中的容器定义字段command必须设置为: run-mysqld-master。

MySQL主备方案需要指定一个用户用于同步主备数据库之间的数据,下面的环境变量定义就是为了达到此目的:变量描述定义MYSQL_MASTER_USER用户名master

MYSQL_MASTER_PASSWORD密码slavekind: "DeploymentConfig"apiVersion: "v1"metadata:  name: "mysql-master"spec:

strategy:

type: "Recreate"

triggers:

- type: "ConfigChange"

replicas: 1

selector:    name: "mysql-master"

template:

metadata:

labels:        name: "mysql-master"

spec:

volumes:

- name: "mysql-master-data"

persistentVolumeClaim:

claimName: "mysql-master"

containers:

- name: "server"

image: "openshift/mysql-55-centos7"

command:

- "run-mysqld-master"

ports:

- containerPort: 3306

protocol: "TCP"

env:

- name: "MYSQL_MASTER_USER"

value: "${MYSQL_MASTER_USER}"

- name: "MYSQL_MASTER_PASSWORD"

value: "${MYSQL_MASTER_PASSWORD}"

- name: "MYSQL_USER"

value: "${MYSQL_USER}"

- name: "MYSQL_PASSWORD"

value: "${MYSQL_PASSWORD}"

- name: "MYSQL_DATABASE"

value: "${MYSQL_DATABASE}"

- name: "MYSQL_ROOT_PASSWORD"

value: "${MYSQL_ROOT_PASSWORD}"

volumeMounts:

- name: "mysql-master-data"

mountPath: "/var/lib/mysql/data"

resources: {}

terminationMessagePath: "/dev/termination-log"

imagePullPolicy: "IfNotPresent"

securityContext:

capabilities: {}

privileged: false

restartPolicy: "Always"

dnsPolicy: "ClusterFirst"

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值