@@ -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
5250NAME CHART VERSION APP VERSION DESCRIPTION
5351radondb/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
8481NAME READY UP-TO-DATE AVAILABLE AGE
8582demo-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
9895backups.mysql.radondb.com 2021-11-02T07:00:01Z
9996mysqlclusters.mysql.radondb.com 2021-11-02T07:00:01Z
10097mysqlusers.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
107104NAME READY AGE
108105sample-mysql 3/3 7h33m
109106
@@ -113,68 +110,61 @@ service/sample-leader ClusterIP 10.96.111.214 <none> 3306/
113110service/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