Skip to content

Commit 1173919

Browse files
committed
doc: update the doc of v2.1.0. #351
1 parent e536d49 commit 1173919

File tree

1 file changed

+83
-88
lines changed

1 file changed

+83
-88
lines changed

docs/kubernetes/deploy_radondb-mysql_operator_on_k8s.md

Lines changed: 83 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,13 @@ Contents
55
* [简介](#简介)
66
* [部署准备](#部署准备)
77
* [部署步骤](#部署步骤)
8-
* [步骤 1:克隆代码](#步骤-1-克隆代码)
8+
* [步骤 1:添加 Helm 仓库](#步骤-1-添加-helm-仓库)
99
* [步骤 2:部署 Operator](#步骤-2-部署-operator)
1010
* [步骤 3:部署 RadonDB MySQL 集群](#步骤-3-部署-radondb-mysql-集群)
1111
* [部署校验](#部署校验)
1212
* [校验 RadonDB MySQL Operator](#校验-radondb-mysql-operator)
1313
* [校验 RadonDB MySQL 集群](#校验-radondb-mysql-集群)
14-
* [连接 RadonDB MySQL](#连接-radondb-mysql)
15-
* [同 NameSpace 访问](#同-namespace-访问)
16-
* [跨 NameSpace 访问](#跨-namespace-访问)
14+
* [访问 RadonDB MySQL](#访问-radondb-mysql)
1715
* [卸载](#卸载)
1816
* [卸载 Operator](#卸载-Operator)
1917
* [卸载 RadonDB MySQL](#卸载-RadonDB-MySQL)
@@ -40,34 +38,36 @@ RadonDB MySQL 支持在 Kubernetes 上安装部署和管理,自动执行与运
4038

4139
## 部署步骤
4240

43-
### 步骤 1: 克隆代码
41+
### 步骤 1: 添加 Helm 仓库
4442

4543
```
46-
git clone https://github.com/radondb/radondb-mysql-kubernetes.git
44+
$ helm repo add radondb https://radondb.github.io/radondb-mysql-kubernetes/
4745
```
4846

49-
### 步骤 2: 部署 Operator
50-
51-
使用 Helm(V3版本) 安装 chart 的指令如下。
52-
47+
校验仓库,可查看到名为 `radondb/mysql-operator` 的 chart。
5348
```
54-
helm install [NAME] [CHART] [flags]
49+
$ helm search repo radondb
50+
NAME CHART VERSION APP VERSION DESCRIPTION
51+
radondb/mysql-operator 0.1.0 v2.1.0 Open Source,High Availability Cluster,based o...
5552
```
5653

54+
### 步骤 2: 部署 Operator
55+
5756
以下指定 release 名为 `demo` , 创建一个名为 `demo-mysql-operator`[Deployment](#7-deployments)
5857

5958
```
60-
helm install demo radondb-mysql-kubernetes/charts/mysql-operator
59+
$ helm install demo radondb/mysql-operator
6160
```
6261

63-
> 说明:在这一步骤中默认将同时创建一个名为 `mysqlclusters.mysql.radondb.com` [CRD](#8-CRD)
62+
> 说明:在这一步骤中默认将同时创建集群所需的 [CRD](#8-CRD)
6463
6564
### 步骤 3: 部署 RadonDB MySQL 集群
6665

6766
执行以下指令,以默认参数为 CRD `mysqlclusters.mysql.radondb.com` 创建一个实例,即创建 RadonDB MySQL 集群。您可以参照[配置](#配置)自定义集群部署参数。
6867

6968
```kubectl
70-
kubectl apply -f radondb-mysql-kubernetes/config/samples/mysql_v1alpha1_mysqlcluster.yaml
69+
$ wget https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml
70+
$ kubectl apply -f mysql_v1alpha1_cluster.yaml
7171
```
7272

7373
## 部署校验
@@ -77,29 +77,29 @@ kubectl apply -f radondb-mysql-kubernetes/config/samples/mysql_v1alpha1_mysqlclu
7777
查看 `demo` 的 Deployment 和对应监控服务,回显如下信息则部署成功。
7878

7979
```shell
80-
kubectl get deployment,svc
80+
$ kubectl get deployment,svc
8181
NAME READY UP-TO-DATE AVAILABLE AGE
8282
demo-mysql-operator 1/1 1 1 7h50m
8383

84-
8584
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
8685
service/mysql-operator-metrics ClusterIP 10.96.142.22 <none> 8443/TCP 8h
8786
```
8887

8988
### 校验 RadonDB MySQL 集群
9089

91-
执行如下命令,将查看到名为 `mysqlclusters.mysql.radondb.com` CRD。
90+
执行如下命令,将查看到如下 CRD。
9291

9392
```shell
94-
kubectl get crd
95-
NAME CREATED AT
96-
mysqlclusters.mysql.radondb.com 2021-06-29T02:28:36Z
93+
$ kubectl get crd | grep mysql.radondb.com
94+
backups.mysql.radondb.com 2021-11-02T07:00:01Z
95+
mysqlclusters.mysql.radondb.com 2021-11-02T07:00:01Z
96+
mysqlusers.mysql.radondb.com 2021-11-02T07:00:01Z
9797
```
9898

9999
以默认部署为例,执行如下命令将查看到名为 `sample-mysql` 的三节点 RadonDB MySQL 集群及用于访问节点的服务。
100100

101101
```shell
102-
kubectl get statefulset,svc
102+
$ kubectl get statefulset,svc
103103
NAME READY AGE
104104
sample-mysql 3/3 7h33m
105105

@@ -109,68 +109,61 @@ service/sample-leader ClusterIP 10.96.111.214 <none> 3306/
109109
service/sample-mysql ClusterIP None <none> 3306/TCP 7h37m
110110
```
111111

112-
## 连接 RadonDB MySQL
112+
## 访问 RadonDB MySQL
113113

114-
您需要准备一个用于连接 MySQL 的客户端。
114+
> **注意**
115+
>
116+
> 准备可用于连接 MySQL 的客户端。
115117
116-
### 同 NameSpace 访问
118+
- 当客户端的与数据库部署在不同 Kubernetes 集群,请参考 [Kubernetes 访问集群中的应用程序](https://kubernetes.io/zh/docs/tasks/access-application-cluster/),配置端口转发、负载均衡等连接方式。
117119

118-
当客户端与 RadonDB MySQL 集群在同一个 NameSpace 中时,可使用 leader/follower service 名称代替具体的 IP 和端口。
120+
- 在 Kubernetes 集群内,支持使用 `service_name` 或者 `clusterIP` 方式,访问 RadonDB MySQL。
121+
122+
> **说明**
123+
>
124+
> RadonDB MySQL 提供 leader 服务和 follower 服务用于分别访问主从节点。leader 服务始终指向主节点(读写),follower 服务始终指向从节点(只读)。
119125
120-
* 连接主节点(读写节点)
126+
以下为客户端与数据库在同一 Kubernetes 集群内,访问 RadonDB MySQL 的方式
121127

122-
```shell
123-
$ mysql -h <leader service 名称> -u <用户名> -p
124-
```
125-
126-
用户名为 `radondb_usr`,release 名为 `sample` ,连接主节点示例如下:
127-
128-
```shell
129-
$ mysql -h sample-leader -u radondb_usr -p
130-
```
128+
### `service_name` 方式
131129

132-
* 连接从节点(只读节点)。
130+
* 连接 leader 服务(RadonDB MySQL 主节点)
133131

134132
```shell
135-
$ mysql -h <follower service 名称> -u <用户名> -p
133+
$ mysql -h <leader_service_name>.<namespace> -u <user_name> -p
136134
```
137135

138-
用户名为 `radondb_usr`,release 名为 `sample` ,连接从节点示例如下
136+
用户名为 `radondb_usr`,release 名为 `sample`,RadonDB MySQL 命名空间为 `default` ,连接示例如下
139137

140138
```shell
141-
$ mysql -h sample-follower -u radondb_usr -p
139+
$ mysql -h sample-leader.default -u radondb_usr -p
142140
```
143141

144-
### 跨 NameSpace 访问
145-
146-
当客户端与 RadonDB MySQL 集群不在同一个 NameSpace 中时,可以通过 podIP 或服务 ClusterIP 来连接对应节点。
147-
148-
1. 查询 pod 列表和服务列表,分别获取需要连接的节点所在的pod 名称或对应的服务名称。
142+
* 连接 follower 服务(RadonDB MySQL 从节点)
149143

150144
```shell
151-
$ kubectl get pod,svc
145+
$ mysql -h <follower_service_name>.<namespace> -u <user_name> -p
152146
```
153147

154-
2. 查看 pod/服务的详细信息,获取对应的IP。
148+
用户名为 `radondb_usr`,release 名为 `sample`,RadonDB MySQL 命名空间为 `default` ,连接示例如下:
155149

156150
```shell
157-
$ kubectl describe pod <pod 名称>
158-
$ kubectl describe svc <服务名称>
151+
$ mysql -h sample-follower.default -u radondb_usr -p
159152
```
160153

161-
> 注意:pod 重启后 pod IP 会更新,需重新获取 pod IP,建议使用服务的 ClusterIP 来连接节点。
154+
### `clusterIP` 方式
162155

163-
3. 连接节点
156+
RadonDB MySQL 的高可用读写 IP 指向 leader 服务的 `clusterIP`,高可用只读 IP 指向 follower 服务的 `clusterIP`
164157

165-
```shell
166-
$ mysql -h <pod IP/服务 ClusterIP> -u <用户名> -p
167-
```
158+
```shell
159+
$ mysql -h <clusterIP> -P <mysql_Port> -u <user_name> -p
160+
```
168161

169-
用户名为 `radondb_usr`pod IP`10.10.128.136` ,连接示例如下:
162+
以下示例用户名为 `radondb_usr` leader 服务的 clusterIP`10.10.128.136` ,连接示例如下:
170163

171-
```shell
172-
$ mysql -h 10.10.128.136 -u radondb_usr -p
173-
```
164+
```shell
165+
$ mysql -h 10.10.128.136 -P 3306 -u radondb_usr -p
166+
```
174167

175168
## 卸载
176169

@@ -179,71 +172,73 @@ service/sample-mysql ClusterIP None <none> 3306/
179172
卸载当前命名空间下 release 名为 `demo` 的 RadonDB MySQL Operator。
180173

181174
```shell
182-
helm delete demo
175+
$ helm delete demo
183176
```
184177

185178
### 卸载 RadonDB MySQL
186179

187180
卸载 release 名为 `sample` RadonDB MySQL 集群。
188181

189182
```shell
190-
kubectl delete mysqlclusters.mysql.radondb.com sample
183+
$ kubectl delete mysqlclusters.mysql.radondb.com sample
191184
```
192185

193186
### 卸载自定义资源
194187

195188
```shell
196-
kubectl delete customresourcedefinitions.apiextensions.k8s.io mysqlclusters.mysql.radondb.com
189+
$ kubectl delete customresourcedefinitions.apiextensions.k8s.io mysqlclusters.mysql.radondb.com
190+
$ kubectl delete customresourcedefinitions.apiextensions.k8s.io mysqlusers.mysql.radondb.com
191+
$ kubectl delete customresourcedefinitions.apiextensions.k8s.io backups.mysql.radondb.com
197192
```
198193

199194
## 配置
200195

201196
### 容器配置
202197

203198
| 参数 | 描述 | 默认值 |
204-
|:---------------------------------- |:---------------------------|:----------------------------------------------------------- |
199+
| :--------------------------------- | :-------------------------- | :---------------------------------------------------------- |
205200
| MysqlVersion | MySQL 版本号 | 5.7 |
206201
| MysqlOpts.RootPassword | MySQL Root 用户密码 | "" |
207-
| MysqlOpts.User | 默认新建的 MySQL 用户名称 | radondb_usr |
208-
| MysqlOpts.Password | 默认新建的 MySQL 用户密码 | RadonDB@123 |
209-
| MysqlOpts.Database | 默认新建的 MySQL 数据库名称 | radondb |
202+
| MysqlOpts.User | 默认新建的 MySQL 用户名称 | radondb_usr |
203+
| MysqlOpts.Password | 默认新建的 MySQL 用户密码 | RadonDB@123 |
204+
| MysqlOpts.Database | 默认新建的 MySQL 数据库名称 | radondb |
210205
| MysqlOpts.InitTokuDB | 是否启用TokuDB | true |
211-
| MysqlOpts.MysqlConf | MySQL 配置 | - |
206+
| MysqlOpts.MysqlConf | MySQL 配置 | - |
212207
| MysqlOpts.Resources | MySQL 容器配额 | 预留: cpu 100m, 内存 256Mi; </br> 限制: cpu 500m, 内存 1Gi |
213-
| XenonOpts.Image | xenon(高可用组件)镜像 | radondb/xenon:1.1.5-alpha |
214-
| XenonOpts.AdmitDefeatHearbeatCount | 允许的最大心跳检测失败次数 | 5 |
215-
| XenonOpts.ElectionTimeout | 选举超时时间(单位为毫秒) | 10000ms |
208+
| XenonOpts.Image | xenon(高可用组件)镜像 | radondb/xenon:1.1.5-alpha |
209+
| XenonOpts.AdmitDefeatHearbeatCount | 允许的最大心跳检测失败次数 | 5 |
210+
| XenonOpts.ElectionTimeout | 选举超时时间(单位为毫秒) | 10000ms |
216211
| XenonOpts.Resources | xenon 容器配额 | 预留: cpu 50m, 内存 128Mi; </br> 限制: cpu 100m, 内存 256Mi |
217-
| MetricsOpts.Enabled | 是否启用 Metrics(监控)容器 | false |
218-
| MetricsOpts.Image | Metrics 容器镜像地址 | prom/mysqld-exporter:v0.12.1 |
212+
| MetricsOpts.Enabled | 是否启用 Metrics(监控)容器 | false |
213+
| MetricsOpts.Image | Metrics 容器镜像 | prom/mysqld-exporter:v0.12.1 |
219214
| MetricsOpts.Resources | Metrics 容器配额 | 预留: cpu 10m, 内存 32Mi; </br> 限制: cpu 100m, 内存 128Mi |
220215

221216
### 节点配置
222217

223-
| 参数 | 描述 | 默认值 |
224-
|:------------------------- |:-------------------------------------------------- |:------------------------ |
225-
| Replicas | 集群节点数,只允许为0、2、3、5 | 3 |
226-
| PodSpec.ImagePullPolicy | 镜像拉取策略, 只允许为 Always/IfNotPresent/Never | IfNotPresent |
227-
| PodSpec.Labels | 节点 pod [标签](#1-标签) | - |
228-
| PodSpec.Annotations | 节点 pod [注解](#2-注解) | - |
229-
| PodSpec.Affinity | 节点 pod [亲和性](#3-亲和性) | - |
230-
| PodSpec.PriorityClassName | 节点 pod [优先级](#4-优先级)对象名称 | - |
231-
| PodSpec.Tolerations | 节点 pod [污点容忍度](#5-容忍)列表 | - |
232-
| PodSpec.SchedulerName | 节点 pod [调度器](#6-调度器)名称 | - |
233-
| PodSpec.Resources | 节点 pod 配额 | 预留: cpu 10m, 内存 32Mi |
234-
| PodSpec.SidecarImage | Sidecar 镜像 | radondb/mysql-sidecar:v2.1.0 |
235-
| PodSpec.BusyboxImage | Busybox 镜像 | busybox:1.32 |
236-
| PodSpec.SlowLogTail | 是否开启慢日志跟踪 | false |
237-
| PodSpec.AuditLogTail | 是否开启审计日志跟踪 | false |
218+
| 参数 | 描述 | 默认值 |
219+
| :-------------------------- | :----------------------------------------------- | :------------------------ |
220+
| Replicas | 集群节点数,只允许为0、2、3、5 | 3 |
221+
| PodPolicy.ImagePullPolicy | 镜像拉取策略, 只允许为 Always/IfNotPresent/Never | IfNotPresent |
222+
| PodPolicy.Labels | 节点 pod [标签](#1-标签) | - |
223+
| PodPolicy.Annotations | 节点 pod [注解](#2-注解) | - |
224+
| PodPolicy.Affinity | 节点 pod [亲和性](#3-亲和性) | - |
225+
| PodPolicy.PriorityClassName | 节点 pod [优先级](#4-优先级)对象名称 | - |
226+
| PodPolicy.Tolerations | 节点 pod [污点容忍度](#5-容忍)列表 | - |
227+
| PodPolicy.SchedulerName | 节点 pod [调度器](#6-调度器)名称 | - |
228+
| PodPolicy.ExtraResources | 节点容器配额(除 MySQL 和 Xenon 之外的容器) | 预留: cpu 10m, 内存 32Mi |
229+
| PodPolicy.SidecarImage | Sidecar 镜像 | radondb/mysql-sidecar:latest |
230+
| PodPolicy.BusyboxImage | Busybox 镜像 | busybox:1.32 |
231+
| PodPolicy.SlowLogTail | 是否开启慢日志跟踪 | false |
232+
| PodPolicy.AuditLogTail | 是否开启审计日志跟踪 | false |
238233

239234
### 持久化配置
240235

241236
| 参数 | 描述 | 默认值 |
242-
|:------------------------ |:-------------- |:------------- |
237+
| :----------------------- | :------------- | :------------ |
243238
| Persistence.Enabled | 是否启用持久化 | true |
244239
| Persistence.AccessModes | 存储卷访问模式 | ReadWriteOnce |
245-
| Persistence.StorageClass | 存储卷类型 | - |
246-
| Persistence.Size | 存储卷容量 | 10Gi |
240+
| Persistence.StorageClass | 存储卷类型 | - |
241+
| Persistence.Size | 存储卷容量 | 10Gi |
247242

248243
## 参考
249244

0 commit comments

Comments
 (0)