@@ -5,15 +5,13 @@ Contents
5
5
* [ 简介] ( #简介 )
6
6
* [ 部署准备] ( #部署准备 )
7
7
* [ 部署步骤] ( #部署步骤 )
8
- * [ 步骤 1:克隆代码 ] ( #步骤-1-克隆代码 )
8
+ * [ 步骤 1:添加 Helm 仓库 ] ( #步骤-1-添加-helm-仓库 )
9
9
* [ 步骤 2:部署 Operator] ( #步骤-2-部署-operator )
10
10
* [ 步骤 3:部署 RadonDB MySQL 集群] ( #步骤-3-部署-radondb-mysql-集群 )
11
11
* [ 部署校验] ( #部署校验 )
12
12
* [ 校验 RadonDB MySQL Operator] ( #校验-radondb-mysql-operator )
13
13
* [ 校验 RadonDB MySQL 集群] ( #校验-radondb-mysql-集群 )
14
- * [ 连接 RadonDB MySQL] ( #连接-radondb-mysql )
15
- * [ 同 NameSpace 访问] ( #同-namespace-访问 )
16
- * [ 跨 NameSpace 访问] ( #跨-namespace-访问 )
14
+ * [ 访问 RadonDB MySQL] ( #访问-radondb-mysql )
17
15
* [ 卸载] ( #卸载 )
18
16
* [ 卸载 Operator] ( #卸载-Operator )
19
17
* [ 卸载 RadonDB MySQL] ( #卸载-RadonDB-MySQL )
@@ -40,27 +38,26 @@ RadonDB MySQL 支持在 Kubernetes 上安装部署和管理,自动执行与运
40
38
41
39
## 部署步骤
42
40
43
- ### 步骤 1: 添加 helm 仓库
41
+ ### 步骤 1: 添加 Helm 仓库
44
42
45
43
```
46
- helm repo add radondb https://radondb.github.io/radondb-mysql-kubernetes/
44
+ $ helm repo add radondb https://radondb.github.io/radondb-mysql-kubernetes/
47
45
```
48
46
49
47
校验仓库,可查看到名为 ` radondb/mysql-operator ` 的 chart。
50
48
```
51
- helm search repo
49
+ $ helm search repo
52
50
NAME CHART VERSION APP VERSION DESCRIPTION
53
51
radondb/mysql-operator 0.1.1 latest Open Source,High Availability Cluster,based on MySQL
54
52
```
55
53
56
54
### 步骤 2: 部署 Operator
57
55
58
56
59
-
60
57
以下指定 release 名为 ` demo ` , 创建一个名为 ` demo-mysql-operator ` 的 [ Deployment] ( #7-deployments ) 。
61
58
62
59
```
63
- helm install demo radondb/mysql-operator
60
+ $ helm install demo radondb/mysql-operator
64
61
```
65
62
66
63
> 说明:在这一步骤中默认将同时创建集群所需的 [ CRD] ( #8-CRD ) 。
@@ -70,7 +67,7 @@ helm install demo radondb/mysql-operator
70
67
执行以下指令,以默认参数为 CRD ` mysqlclusters.mysql.radondb.com ` 创建一个实例,即创建 RadonDB MySQL 集群。您可以参照[ 配置] ( #配置 ) 自定义集群部署参数。
71
68
72
69
``` kubectl
73
- kubectl apply -f https://raw.githubusercontent.com/radondb/radondb-mysql-kubernetes/main/config/samples/mysql_v1alpha1_mysqlcluster.yaml
70
+ $ kubectl apply -f https://raw.githubusercontent.com/radondb/radondb-mysql-kubernetes/main/config/samples/mysql_v1alpha1_mysqlcluster.yaml
74
71
```
75
72
76
73
## 部署校验
@@ -80,7 +77,7 @@ kubectl apply -f https://raw.githubusercontent.com/radondb/radondb-mysql-kuberne
80
77
查看 ` demo ` 的 Deployment 和对应监控服务,回显如下信息则部署成功。
81
78
82
79
``` shell
83
- kubectl get deployment,svc
80
+ $ kubectl get deployment,svc
84
81
NAME READY UP-TO-DATE AVAILABLE AGE
85
82
demo-mysql-operator 1/1 1 1 7h50m
86
83
@@ -94,7 +91,7 @@ service/mysql-operator-metrics ClusterIP 10.96.142.22 <none> 8443/
94
91
执行如下命令,将查看到如下 CRD。
95
92
96
93
``` shell
97
- kubectl get crd | grep mysql.radondb.com
94
+ $ kubectl get crd | grep mysql.radondb.com
98
95
backups.mysql.radondb.com 2021-11-02T07:00:01Z
99
96
mysqlclusters.mysql.radondb.com 2021-11-02T07:00:01Z
100
97
mysqlusers.mysql.radondb.com 2021-11-02T07:00:01Z
@@ -103,7 +100,7 @@ mysqlusers.mysql.radondb.com 2021-11-02T07:00:01Z
103
100
以默认部署为例,执行如下命令将查看到名为 ` sample-mysql ` 的三节点 RadonDB MySQL 集群及用于访问节点的服务。
104
101
105
102
``` shell
106
- kubectl get statefulset,svc
103
+ $ kubectl get statefulset,svc
107
104
NAME READY AGE
108
105
sample-mysql 3/3 7h33m
109
106
@@ -113,68 +110,61 @@ service/sample-leader ClusterIP 10.96.111.214 <none> 3306/
113
110
service/sample-mysql ClusterIP None < none> 3306/TCP 7h37m
114
111
```
115
112
116
- ## 连接 RadonDB MySQL
113
+ ## 访问 RadonDB MySQL
117
114
118
- 您需要准备一个用于连接 MySQL 的客户端。
115
+ > ** 注意**
116
+ >
117
+ > 准备可用于连接 MySQL 的客户端。
119
118
120
- ### 同 NameSpace 访问
119
+ - 当客户端的与数据库部署在不同 Kubernetes 集群,请参考 [ Kubernetes 访问集群中的应用程序 ] ( https://kubernetes.io/zh/docs/tasks/access-application-cluster/ ) ,配置端口转发、负载均衡等连接方式。
121
120
122
- 当客户端与 RadonDB MySQL 集群在同一个 NameSpace 中时,可使用 leader/follower service 名称代替具体的 IP 和端口。
121
+ - 在 Kubernetes 集群内,支持使用 ` service_name ` 或者 ` clusterIP ` 方式,访问 RadonDB MySQL。
122
+
123
+ > ** 说明**
124
+ >
125
+ > RadonDB MySQL 提供 leader 服务和 follower 服务用于分别访问主从节点。leader 服务始终指向主节点(读写),follower 服务始终指向从节点(只读)。
123
126
124
- * 连接主节点(读写节点) 。
127
+ 以下为客户端与数据库在同一 Kubernetes 集群内,访问 RadonDB MySQL 的方式 。
125
128
126
- ``` shell
127
- $ mysql -h < leader service 名称> -u < 用户名> -p
128
- ```
129
+ ### ` service_name ` 方式
129
130
130
- 用户名为 ` radondb_usr ` ,release 名为 ` sample ` ,连接主节点示例如下:
131
+ * 连接 leader 服务(RadonDB MySQL 主节点)
131
132
132
133
``` shell
133
- $ mysql -h sample-leader -u radondb_usr -p
134
+ $ mysql -h < leader_service_name > . < namespace > -u < user_name > -p
134
135
```
135
136
136
- * 连接从节点(只读节点)。
137
+ 用户名为 ` radondb_usr ` ,release 名为 ` sample ` ,RadonDB MySQL 命名空间为 ` default ` ,连接示例如下:
137
138
138
139
` ` ` shell
139
- $ mysql -h < follower service 名称 > -u < 用户名 > -p
140
+ $ mysql -h sample-leader.default -u radondb_usr -p
140
141
` ` `
141
142
142
- 用户名为 ` radondb_usr` ,release 名为 ` sample` ,连接从节点示例如下:
143
-
144
- ` ` ` shell
145
- $ mysql -h sample-follower -u radondb_usr -p
146
- ` ` `
147
-
148
- # ## 跨 NameSpace 访问
149
-
150
- 当客户端与 RadonDB MySQL 集群不在同一个 NameSpace 中时,可以通过 podIP 或服务 ClusterIP 来连接对应节点。
151
-
152
- 1. 查询 pod 列表和服务列表,分别获取需要连接的节点所在的 pod 名称或对应的服务名称。
143
+ * 连接 follower 服务(RadonDB MySQL 从节点)
153
144
154
145
` ` ` shell
155
- $ kubectl get pod,svc
146
+ $ mysql -h < follower_service_name > . < namespace > -u < user_name > -p
156
147
` ` `
157
148
158
- 2. 查看 pod/服务的详细信息,获取对应的 IP。
149
+ 用户名为 ` radondb_usr ` ,release 名为 ` sample ` ,RadonDB MySQL 命名空间为 ` default ` ,连接示例如下:
159
150
160
151
` ` ` shell
161
- $ kubectl describe pod < pod 名称>
162
- $ kubectl describe svc < 服务名称>
152
+ $ mysql -h sample-follower.default -u radondb_usr -p
163
153
` ` `
164
154
165
- > 注意:pod 重启后 pod IP 会更新,需重新获取 pod IP,建议使用服务的 ClusterIP 来连接节点。
155
+ # ## `clusterIP` 方式
166
156
167
- 3. 连接节点 。
157
+ RadonDB MySQL 的高可用读写 IP 指向 leader 服务的 ` clusterIP ` ,高可用只读 IP 指向 follower 服务的 ` clusterIP ` 。
168
158
169
- ` ` ` shell
170
- $ mysql -h < pod IP/服务 ClusterIP > -u < 用户名 > -p
171
- ` ` `
159
+ ` ` ` shell
160
+ $ mysql -h < clusterIP > -P < mysql_Port > -u < user_name > -p
161
+ ` ` `
172
162
173
- 用户名为 ` radondb_usr` ,Cluster IP 为 ` 10.10.128.136` ,连接示例如下:
163
+ 以下示例用户名为 ` radondb_usr` , leader 服务的 clusterIP 为 ` 10.10.128.136` ,连接示例如下:
174
164
175
- ` ` ` shell
176
- $ mysql -h 10.10.128.136 -u radondb_usr -p
177
- ` ` `
165
+ ` ` ` shell
166
+ $ mysql -h 10.10.128.136 -P 3306 -u radondb_usr -p
167
+ ` ` `
178
168
179
169
# # 卸载
180
170
@@ -183,23 +173,23 @@ service/sample-mysql ClusterIP None <none> 3306/
183
173
卸载当前命名空间下 release 名为 ` demo` 的 RadonDB MySQL Operator。
184
174
185
175
` ` ` shell
186
- helm delete demo
176
+ $ helm delete demo
187
177
` ` `
188
178
189
179
# ## 卸载 RadonDB MySQL
190
180
191
181
卸载 release 名为 ` sample` RadonDB MySQL 集群。
192
182
193
183
` ` ` shell
194
- kubectl delete mysqlclusters.mysql.radondb.com sample
184
+ $ kubectl delete mysqlclusters.mysql.radondb.com sample
195
185
` ` `
196
186
197
187
# ## 卸载自定义资源
198
188
199
189
` ` ` shell
200
- kubectl delete customresourcedefinitions.apiextensions.k8s.io mysqlclusters.mysql.radondb.com
201
- kubectl delete customresourcedefinitions.apiextensions.k8s.io mysqlusers.mysql.radondb.com
202
- kubectl delete customresourcedefinitions.apiextensions.k8s.io backups.mysql.radondb.com
190
+ $ kubectl delete customresourcedefinitions.apiextensions.k8s.io mysqlclusters.mysql.radondb.com
191
+ $ kubectl delete customresourcedefinitions.apiextensions.k8s.io mysqlusers.mysql.radondb.com
192
+ $ kubectl delete customresourcedefinitions.apiextensions.k8s.io backups.mysql.radondb.com
203
193
` ` `
204
194
205
195
# # 配置
0 commit comments