# 1. 安装环境

本步骤将指导您如何安装Docker、kubectl、minikube和Helm3。

# 1.1 安装Docker

a.执行如下命令,安装Docker。

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
1

b.执行如下命令,启动Docker。

systemctl start docker
1

# 1.2 安装kubectl

a.执行如下命令,下载kubectl文件。

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
1

b.执行如下命令,赋予可执行权限。

chmod +x ./kubectl
1

c.执行如下命令,移动到系统目录。

mv ./kubectl /usr/local/bin/kubectl
1

# 1.3 安装minikube

执行如下命令,下载并安装minikube。

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
1
2

# 1.4 安装Helm3

a.执行如下命令,下载Helm3。

wget https://labfileapp.oss-cn-hangzhou.aliyuncs.com/helm-v3.9.0-linux-amd64.tar.gz
1

b.执行如下命令,解压Helm3。

tar -zxvf helm-v3.9.0-linux-amd64.tar.gz
1

c.执行如下命令,移动到系统目录。

mv linux-amd64/helm /usr/local/bin/helm
1

# 1.5 安装MySQL

yum install mysql -y
1

# 2. 安装PolarDB-X集群

本步骤将指导您如何创建一个简单的Kubernetes集群并部署PolarDB-X Operator ,使用Operator部署一个完整的PolarDB-X集群,详细文档请参考通过Kubernetes安装PolarDB-X (opens new window)

# 2.1 minikube创建Kubernetes集群

minikube (opens new window)是由社区维护的用于快速创建Kubernetes测试集群的工具,适合测试和学习Kubernetes。使用minikube创建的Kubernetes集群可以运行在容器或是虚拟机中,本实验场景以CentOS 8.5上创建Kubernetes为例。

**说明:**如果您使用其他操作系统部署minikube,例如macOS或Windows,部分步骤可能略有不同。

a.执行如下命令,新建账号galaxykube,并将galaxykube加入docker组中。minikube要求使用非root账号进行部署,所有您需要新建一个账号。

useradd -ms /bin/bash galaxykube
usermod -aG docker galaxykube
1
2

b.执行如下命令,切换到账号galaxykube。

su galaxykube
1

c.执行如下命令,进入到home/galaxykube目录。

cd
1

d.执行如下命令,启动一个minikube。

**说明:**这里我们使用了阿里云的minikube镜像源以及USTC提供的docker镜像源来加速镜像的拉取。

minikube start --cpus 4 --memory 12288 --image-mirror-country cn --registry-mirror=https://docker.mirrors.sjtug.sjtu.edu.cn
1

返回结果如下,表示minikube已经正常运行,minikube将自动设置kubectl的配置文件。

img

e.执行如下命令,使用kubectl查看集群信息。

kubectl cluster-info
1

返回如下结果,您可以查看到集群相关信息。

img

# 2.2 部署 PolarDB-X Operator

a.执行如下命令,创建一个名为polardbx-operator-system的命名空间。

kubectl create namespace polardbx-operator-system
1

b.执行如下命令,安装PolarDB-X Operator。

helm repo add polardbx https://polardbx-charts.oss-cn-beijing.aliyuncs.com
helm install --namespace polardbx-operator-system polardbx-operator polardbx/polardbx-operator
1
2

c.执行如下命令,查看PolarDB-X Operator组件的运行情况。

kubectl get pods --namespace polardbx-operator-system
1

返回结果如下,请您耐心等待2分钟,等待所有组件都进入Running状态,表示PolarDB-X Operator已经安装完成。

img

# 2.3 部署 PolarDB-X 集群

a.执行如下命令,创建polardb-x.yaml。

vim polardb-x.yaml
1

b.按i键进入编辑模式,将如下代码复制到文件中,然后按ECS退出编辑模式,输入:wq后按下Enter键保存并退出。

apiVersion: polardbx.aliyun.com/v1
kind: PolarDBXCluster
metadata:
  name: polardb-x
spec:
  topology:
    nodes:
      cdc:
        replicas: 1
        template:
          resources:
            limits:
              cpu: "1"
              memory: 1Gi
            requests:
              cpu: 100m
              memory: 500Mi
      cn:
        replicas: 1
        template:
          resources:
            limits:
              cpu: "2"
              memory: 4Gi
            requests:
              cpu: 100m
              memory: 1Gi
      dn:
        replicas: 1
        template:
          engine: galaxy
          hostNetwork: true
          resources:
            limits:
              cpu: "2"
              memory: 4Gi
            requests:
              cpu: 100m
              memory: 500Mi
      gms:
        template:
          engine: galaxy
          hostNetwork: true
          resources:
            limits:
              cpu: "1"
              memory: 1Gi
            requests:
              cpu: 100m
              memory: 500Mi
          serviceType: ClusterIP
  upgradeStrategy: RollingUpgrade
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

c.执行如下命令,创建PolarDB-X集群。

kubectl apply -f polardb-x.yaml
1

d.执行如下命令,查看PolarDB-X集群创建状态。

kubectl get polardbxCluster polardb-x -o wide -w
1

返回结果如下,请您耐心等待七分钟左右,当PHASE显示为Running时,表示PolarDB-X集群已经部署完成。

img

e.按Ctrl+C键,退出查看PolarDB-X集群创建状态。

# 3. 体验PolarDB-X集群扩缩容

本步骤将指导您如何对PolarDB-X集群进行扩容,缩容的话,数量减少即可。

# 3.1 编辑polardb-x.yaml文件

vim polardb-x.yaml
1

# 3.2 replicas参数改为2,进行扩容

img

执行如下命令,将修改后的polardb-x.yaml文件应用到已经创建的PolarDB-X集群中。

kubectl apply -f polardb-x.yaml
1

执行如下命令,观察集群的变化情况。

kubectl get polardbxCluster polardb-x -o wide -w
1

返回结果如下,您可以看到PolarDB-X集群扩容过程中各个节点的变化。请您耐心等待两分钟左右,当PHASE显示为Running时,表示PolarDB-X集群已经扩容完成。

img

执行如下命令,获取PolarDB-X集群登录密码。

kubectl get secret polardb-x -o jsonpath="{.data['polardbx_root']}" | base64 -d - | xargs echo "Password: "
1

返回结果如下,您可以查看到PolarDB-X集群登录密码。

img

执行如下命令,将PolarDB-X集群的端口转发到本地的3306端口。

kubectl port-forward svc/polardb-x 3306
1

执行如下命令,连接PolarDB-X集群。 **说明:**您需要将<PolarDB-X集群登录密码>替换为实际获取到的PolarDB-X集群登录密码。

mysql -h127.0.0.1 -P3306 -upolardbx_root -p<PolarDB-X集群登录密码>
1

执行如下SQL语句,检查扩容后的状态。

show storage;
1

返回结果如下,您可查看到PolarDB-X集群扩容后的状态。

img

# 来源