Skip to content

Commit e7d8f16

Browse files
authored
Merge pull request #341 from molliezhang/docs
docs/kubernetes *: Update the description about access radondb mysql #340
2 parents ef4eab3 + 77acbf6 commit e7d8f16

File tree

2 files changed

+100
-108
lines changed

2 files changed

+100
-108
lines changed

docs/kubernetes/deploy_radondb-mysql_on_kubernetes.md

Lines changed: 56 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@ Contents
1212
* [步骤 1 : 添加仓库](#步骤-1--添加仓库)
1313
* [步骤 2 : 部署](#步骤-2--部署)
1414
* [部署校验](#部署校验)
15-
* [连接 RadonDB MySQL](#连接-radondb-mysql)
16-
* [客户端与 RadonDB MySQL 在同一 NameSpace 中](#客户端与-radondb-mysql-在同一-namespace-中)
17-
* [客户端与 RadonDB MySQL 不在同一 NameSpace 中](#客户端与-radondb-mysql-不在同一-namespace-中)
15+
* [访问 RadonDB MySQL](#访问-radondb-mysql)
1816
* [配置](#配置)
1917
* [持久化](#持久化)
2018
* [自定义 MYSQL 配置](#自定义-mysql-配置)
@@ -40,29 +38,32 @@ RadonDB MySQL 是基于 MySQL 的开源、高可用、云原生集群解决方
4038
执行如下命令,将 RadonDB MySQL Chart 克隆到 Kubernetes 中。
4139

4240
```bash
43-
git clone https://github.com/radondb/radondb-mysql-kubernetes.git
41+
$ git clone https://github.com/radondb/radondb-mysql-kubernetes.git
4442
```
45-
43+
> **说明**
44+
>
4645
> Chart 代表 [Helm](https://helm.sh/zh/docs/intro/using_helm/) 包,包含在 Kubernetes 集群内部运行应用程序、工具或服务所需的所有资源定义。
4746
4847
#### 步骤 2:部署
4948

5049
在 radondb-mysql-kubernetes 目录路径下,选择如下方式,部署 release 实例。
5150

51+
> **说明**
52+
>
5253
> release 是运行在 Kubernetes 集群中的 Chart 的实例。通过命令方式部署,需指定 release 名称。
5354
5455
以下命令指定 release 名为 `demo`,将创建一个名为 `demo-radondb-mysql` 的有状态副本集。
5556

5657
* **默认部署方式**
5758

5859
```bash
59-
<For Helm v2>
60-
cd charts/helm
61-
helm install . demo
60+
# For Helm v2
61+
$ cd charts/helm
62+
$ helm install . demo
6263

63-
<For Helm v3>
64-
cd charts/helm
65-
helm install demo .
64+
# For Helm v3
65+
$ cd charts/helm
66+
$ helm install demo .
6667
```
6768

6869
* **指定参数部署方式**
@@ -72,8 +73,8 @@ git clone https://github.com/radondb/radondb-mysql-kubernetes.git
7273
以下示例以创建一个用户名为 `my-user` ,密码为 `my-password` 的标准数据库用户,可访问名为 `my-database` 的数据库。
7374

7475
```bash
75-
cd charts/helm
76-
helm install demo \
76+
$ cd charts/helm
77+
$ helm install demo \
7778
--set mysql.mysqlUser=my-user,mysql.mysqlPassword=my-password,mysql.database=my-database .
7879
```
7980

@@ -82,8 +83,8 @@ git clone https://github.com/radondb/radondb-mysql-kubernetes.git
8283
执行如下命令,可通过 value.yaml 配置文件,在安装时配置指定参数。更多安装过程中可配置的参数,请参考 [配置](#配置)
8384

8485
```bash
85-
cd charts/helm
86-
helm install demo -f values.yaml .
86+
$ cd charts/helm
87+
$ helm install demo -f values.yaml .
8788
```
8889

8990
### 通过 repo 部署
@@ -154,65 +155,66 @@ demo-radondb-mysql 3/3 25h
154155
部署指令执行完成后,查看 RadonDB MySQL 有状态副本集,pod 状态及服务。可查看到相关信息,则 RadonDB MySQL 部署成功。
155156

156157
```bash
157-
kubectl get statefulset,pod,svc
158+
$ kubectl get statefulset,pod,svc
158159
```
159160

160-
## 连接 RadonDB MySQL
161+
## 访问 RadonDB MySQL
161162

162-
您需要准备一个用于连接 RadonDB MySQL 的客户端。
163+
> **注意**
164+
>
165+
> 准备可用于连接 MySQL 的客户端。
166+
>
167+
> 使用外网客户端连接可能会出现 `SSL connection error`,需要加上 `--ssl-mode=DISABLE` 参数,关闭 SSL。
163168
164-
### 客户端与 RadonDB MySQL 在同一 NameSpace 中
169+
- 当客户端的与数据库部署在不同 Kubernetes 集群,请参考 [Kubernetes 访问集群中的应用程序](https://kubernetes.io/zh/docs/tasks/access-application-cluster/),配置端口转发、负载均衡等连接方式。
165170

166-
当客户端与 RadonDB MySQL 集群在同一个 NameSpace 中时,可使用 leader/follower service 名称代替具体的 ip 和端口
171+
- 在 Kubernetes 集群内,支持选择使用 `service_name` 或者 `cluster_IP` 方式访问 RadonDB MySQL
167172

168-
- 连接主节点(读写节点)。
169-
170-
```bash
171-
mysql -h <leader service 名称> -u <用户名> -p
172-
```
173+
> **说明**
174+
>
175+
> RadonDB MySQL 提供 leader 服务和 follower 服务用于分别访问主从节点。leader 服务始终指向主节点(读写),follower 服务始终指向从节点(只读)。
173176
174-
- 连接从节点(只读节点)。
175-
```bash
176-
mysql -h <follower service 名称> -u <用户名> -p
177-
```
177+
以下为客户端与数据库在同一 Kubernetes 集群内,访问 RadonDB MySQL 的方式。
178178

179-
### 客户端与 RadonDB MySQL 不在同一 NameSpace 中
179+
### `service_name` 方式
180180

181-
当客户端与 RadonDB MySQL 集群不在同一个 NameSpace 中时,需先分别获取连接所需的节点地址、节点端口、服务名称。
181+
* 连接 leader 服务(RadonDB MySQL 主节点)
182182

183-
1. 查询 pod 列表和服务列表,分别获取 pod 名称和服务名称。
183+
```shell
184+
$ mysql -h <leader_service_name>.<namespace> -u <user_name> -p
185+
```
184186

185-
```bash
186-
kubectl get pod,svc
187-
```
187+
用户名为 `radondb_usr`,release 名为 `sample`,RadonDB MySQL 命名空间为 `default` ,连接示例如下:
188188

189-
2. 开启服务网络访问。
189+
```shell
190+
$ mysql -h sample-leader.default -u radondb_usr -p
191+
```
190192

191-
执行如下命令,打开服务配置文件,将 spec 下 type 参数设置为 `NodePort`
193+
* 连接 follower 服务(RadonDB MySQL 从节点)
192194

193-
```bash
194-
kubectl edit svc <服务名称>
195-
```
195+
```shell
196+
$ mysql -h <follower_service_name>.<namespace> -u <user_name> -p
197+
```
196198

197-
3. 分别获取 pod 所在的节点地址和节点端口。
199+
用户名为 `radondb_usr`,release 名为 `sample`,RadonDB MySQL 命名空间为 `default` ,连接示例如下:
198200

199-
```bash
200-
kubectl describe pod <pod名称>
201-
```
201+
```shell
202+
$ mysql -h sample-follower.default -u radondb_usr -p
203+
```
202204

203-
```bash
204-
kubectl describe svc <服务名称>
205-
```
205+
### `clusterIP` 方式
206206

207-
4. 连接节点
207+
RadonDB MySQL 的高可用读写 IP 指向 leader 服务的 `clusterIP`,高可用只读 IP 指向 follower 服务的 `clusterIP`
208208

209-
```bash
210-
mysql -p <节点地址> -u <用户名> -P <节点端口> -p
211-
```
209+
```shell
210+
$ mysql -h <clusterIP> -P <mysql_Port> -u <user_name> -p
211+
```
212212

213-
> **说明**
214-
>
215-
> 使用外网主机连接可能会出现 `SSL connection error`,需要加上 `--ssl-mode=DISABLE` 参数,关闭 SSL。
213+
以下示例用户名为 `radondb_usr`, leader 服务的 clusterIP 为 `10.10.128.136` ,连接示例如下:
214+
215+
```shell
216+
$ mysql -h 10.10.128.136 -P 3306 -u radondb_usr -p
217+
```
216218

217219
## 配置
218220

docs/kubernetes/deploy_radondb-mysql_operator_on_k8s.md

Lines changed: 44 additions & 54 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,27 +38,26 @@ RadonDB MySQL 支持在 Kubernetes 上安装部署和管理,自动执行与运
4038

4139
## 部署步骤
4240

43-
### 步骤 1: 添加 helm 仓库
41+
### 步骤 1: 添加 Helm 仓库
4442

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

4947
校验仓库,可查看到名为 `radondb/mysql-operator` 的 chart。
5048
```
51-
helm search repo
49+
$ helm search repo
5250
NAME CHART VERSION APP VERSION DESCRIPTION
5351
radondb/mysql-operator 0.1.1 latest Open Source,High Availability Cluster,based on MySQL
5452
```
5553

5654
### 步骤 2: 部署 Operator
5755

5856

59-
6057
以下指定 release 名为 `demo` , 创建一个名为 `demo-mysql-operator`[Deployment](#7-deployments)
6158

6259
```
63-
helm install demo radondb/mysql-operator
60+
$ helm install demo radondb/mysql-operator
6461
```
6562

6663
> 说明:在这一步骤中默认将同时创建集群所需的 [CRD](#8-CRD)
@@ -70,7 +67,7 @@ helm install demo radondb/mysql-operator
7067
执行以下指令,以默认参数为 CRD `mysqlclusters.mysql.radondb.com` 创建一个实例,即创建 RadonDB MySQL 集群。您可以参照[配置](#配置)自定义集群部署参数。
7168

7269
```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
7471
```
7572

7673
## 部署校验
@@ -80,7 +77,7 @@ kubectl apply -f https://raw.githubusercontent.com/radondb/radondb-mysql-kuberne
8077
查看 `demo` 的 Deployment 和对应监控服务,回显如下信息则部署成功。
8178

8279
```shell
83-
kubectl get deployment,svc
80+
$ kubectl get deployment,svc
8481
NAME READY UP-TO-DATE AVAILABLE AGE
8582
demo-mysql-operator 1/1 1 1 7h50m
8683

@@ -94,7 +91,7 @@ service/mysql-operator-metrics ClusterIP 10.96.142.22 <none> 8443/
9491
执行如下命令,将查看到如下 CRD。
9592

9693
```shell
97-
kubectl get crd | grep mysql.radondb.com
94+
$ kubectl get crd | grep mysql.radondb.com
9895
backups.mysql.radondb.com 2021-11-02T07:00:01Z
9996
mysqlclusters.mysql.radondb.com 2021-11-02T07:00:01Z
10097
mysqlusers.mysql.radondb.com 2021-11-02T07:00:01Z
@@ -103,7 +100,7 @@ mysqlusers.mysql.radondb.com 2021-11-02T07:00:01Z
103100
以默认部署为例,执行如下命令将查看到名为 `sample-mysql` 的三节点 RadonDB MySQL 集群及用于访问节点的服务。
104101

105102
```shell
106-
kubectl get statefulset,svc
103+
$ kubectl get statefulset,svc
107104
NAME READY AGE
108105
sample-mysql 3/3 7h33m
109106

@@ -113,68 +110,61 @@ service/sample-leader ClusterIP 10.96.111.214 <none> 3306/
113110
service/sample-mysql ClusterIP None <none> 3306/TCP 7h37m
114111
```
115112

116-
## 连接 RadonDB MySQL
113+
## 访问 RadonDB MySQL
117114

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

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 服务始终指向从节点(只读)。
123126
124-
* 连接主节点(读写节点)
127+
以下为客户端与数据库在同一 Kubernetes 集群内,访问 RadonDB MySQL 的方式
125128

126-
```shell
127-
$ mysql -h <leader service 名称> -u <用户名> -p
128-
```
129+
### `service_name` 方式
129130

130-
用户名为 `radondb_usr`,release 名为 `sample` ,连接主节点示例如下:
131+
* 连接 leader 服务(RadonDB MySQL 主节点)
131132

132133
```shell
133-
$ mysql -h sample-leader -u radondb_usr -p
134+
$ mysql -h <leader_service_name>.<namespace> -u <user_name> -p
134135
```
135136

136-
* 连接从节点(只读节点)。
137+
用户名为 `radondb_usr`,release 名为 `sample`,RadonDB MySQL 命名空间为 `default` ,连接示例如下:
137138

138139
```shell
139-
$ mysql -h <follower service 名称> -u <用户名> -p
140+
$ mysql -h sample-leader.default -u radondb_usr -p
140141
```
141142

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 从节点)
153144

154145
```shell
155-
$ kubectl get pod,svc
146+
$ mysql -h <follower_service_name>.<namespace> -u <user_name> -p
156147
```
157148

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

160151
```shell
161-
$ kubectl describe pod <pod 名称>
162-
$ kubectl describe svc <服务名称>
152+
$ mysql -h sample-follower.default -u radondb_usr -p
163153
```
164154

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

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

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+
```
172162

173-
用户名为 `radondb_usr`Cluster IP`10.10.128.136` ,连接示例如下:
163+
以下示例用户名为 `radondb_usr` leader 服务的 clusterIP`10.10.128.136` ,连接示例如下:
174164

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+
```
178168

179169
## 卸载
180170

@@ -183,23 +173,23 @@ service/sample-mysql ClusterIP None <none> 3306/
183173
卸载当前命名空间下 release 名为 `demo` 的 RadonDB MySQL Operator。
184174

185175
```shell
186-
helm delete demo
176+
$ helm delete demo
187177
```
188178

189179
### 卸载 RadonDB MySQL
190180

191181
卸载 release 名为 `sample` RadonDB MySQL 集群。
192182

193183
```shell
194-
kubectl delete mysqlclusters.mysql.radondb.com sample
184+
$ kubectl delete mysqlclusters.mysql.radondb.com sample
195185
```
196186

197187
### 卸载自定义资源
198188

199189
```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
203193
```
204194

205195
## 配置

0 commit comments

Comments
 (0)