k8s kubernates部署mysql8.x集群

简介
基于k8s平台部署mysql inndb cluster。

版本说明:
1、mysql 8.0.29
2、mysql-operator 8.0.29-2.0.4
3、kubernates v1.20.4

官方参考:
1、MySQL集群架构图
k8s kubernates部署mysql8.x集群_第1张图片

2、官方参考文档
https://dev.mysql.com/doc/mysql-operator/en/mysql-operator-installation.html

k8s kubernates部署mysql8.x集群_第2张图片

实践如下

1、环境准备

step1 :下载yaml到本地,防止在线下载可能存在访问不了的情况。

https://raw.githubusercontent.com/mysql/mysql-operator/trunk/deploy/deploy-crds.yaml
https://raw.githubusercontent.com/mysql/mysql-operator/trunk/deploy/deploy-operator.yaml

step2:kubectl apply
deploy-crds.yaml

kubectl apply -f deploy-crds.yaml 

deploy-operator.yaml

 
kubectl apply -f deploy-operator.yaml

step3:验证mysql-operator是否正常运行

kubectl get deployment mysql-operator --namespace mysql-operator

2、部署MySQL InnoDB Cluster

2.1、创建namespace存在就不用创建

kubectl create namespace prod

2.2、指定当前上下文namespace

kubectl config set-context --current --namespace=prod

k8s kubernates部署mysql8.x集群_第3张图片

2.3、创建secret

kubectl create secret generic mysqlpwds --from-literal=rootUser=root --from-literal=rootHost=% --from-literal=rootPassword="123456"

在这里插入图片描述

2.4、创建InnoDBCluster配置文件

vim mycluster.yaml

apiVersion: mysql.oracle.com/v2
kind: InnoDBCluster
metadata:
  name: sysmysqlcluster
spec:
  secretName: mysqlpwds
  tlsUseSelfSigned: true
  instances: 3
  router:
    instances: 1

2.5、部署cluster

kubectl apply -f mycluster.yaml
在这里插入图片描述

kubectl get innodbcluster --watch
在这里插入图片描述
大概需要10分钟左右才会看到如下信息,具体取决于下载 mysql镜像的速度,请耐心等待。
k8s kubernates部署mysql8.x集群_第4张图片

2.6、获取服务描述

kubectl describe service sysmysqlcluster

k8s kubernates部署mysql8.x集群_第5张图片

2.7、获取服务列表

kubectl get service

在这里插入图片描述

kubeshpere管理后台截图

1、容器组信息
k8s kubernates部署mysql8.x集群_第6张图片
k8s kubernates部署mysql8.x集群_第7张图片

2、服务列表
k8s kubernates部署mysql8.x集群_第8张图片

3、存储卷
k8s kubernates部署mysql8.x集群_第9张图片

4、工作负载
k8s kubernates部署mysql8.x集群_第10张图片

k8s kubernates部署mysql8.x集群_第11张图片

5、配置中心
k8s kubernates部署mysql8.x集群_第12张图片
k8s kubernates部署mysql8.x集群_第13张图片

6、自定义资源
k8s kubernates部署mysql8.x集群_第14张图片

重要组件
1、mysql-router

k8s kubernates部署mysql8.x集群_第15张图片
k8s kubernates部署mysql8.x集群_第16张图片

2、mysql cluster
k8s kubernates部署mysql8.x集群_第17张图片

k8s kubernates部署mysql8.x集群_第18张图片

Connect with MySQL Shell

kubectl run --rm -it myshell --image=mysql/mysql-operator -- mysqlsh

kubectl --namespace prod exec -it myshell -- mysqlsh root@sysmysqlcluster --sql

k8s kubernates部署mysql8.x集群_第19张图片

验证mysql节点

k8s kubernates部署mysql8.x集群_第20张图片

验证主从是否同步
k8s kubernates部署mysql8.x集群_第21张图片

暴露路由端口提供外部访问

1、通过页面配置外网访问

k8s kubernates部署mysql8.x集群_第22张图片

k8s kubernates部署mysql8.x集群_第23张图片

你可能感兴趣的:(linux,mysql,kubernetes,docker)