这篇文章我们演示下使用kubernetes集群安装PolarDB-X的详细教程,直接开始
一、安装一个kubernetes集群
这里的话推荐可以使用kuboard来进行可视化安装kubernetes集群,可以参考这篇文章《使用kuboard安装k8s集群详细过程》。
二、安装helm
这块安装PolarDB-X的时候需要使用helm安装,因此需要再服务器上安装helm,这里我们选择在master节点上安装helm,安装教程可参考这篇文章《Kubernetes集群安装helm的详细教程》。
三、创建新的namespace
这里我们单独创建一个新的namespacce用来管理这里的PolarDB-X集群。
kubectl create namespace polardbx-operator-system
当然这里也可以直接在kuboard的管理页面上进行创建
四、在当前的命名空间内安装PolarDB-X Operator
在kubernetes集群中,安装PolarDB-X之后,数据是存在当前的宿主机上的,而且安装后无法修改,因此我们再安装PolarDB-X Operator的时候提前把数据目录给设置好
helm install --namespace polardbx-operator-system --set node.volumes.data=/polardbx/data polardbx-operator https://github.com/polardb/polardbx-operator/releases/download/v1.3.0/polardbx-operator-1.3.0.tgz
在master节点上使用上面的命令进行安装PolarDB-X Operator,同时我们把data的数据目录放到宿主机的/polardbx/data这个目录下,在实际的环境中使用的话,可以根据实际情况来调整自己规划的目录。
到这里我们的PolarDB-X Operator就安装完毕了,我们可以使用如下的命令查看PolarDB-X Operator的运行情况
kubectl get pods --namespace polardbx-operator-system
可以看到如下的界面
在kuboard页面上我们也能看到
五、安装PolarDB-X集群
这里创建的时候,我们直接使用yml进行创建,这里可以直接在服务器上创建一个yml文件,然后把下面的内容复制到这个yml文件里面,再使用kubectl create -f进行安装,但是我们既然有kuboard,那么直接可视化创建即可。点击常用操作->从yaml创建
然后我们的yaml内容是:
apiVersion: polardbx.aliyun.com/v1 kind: PolarDBXCluster metadata: name: polardb-a namespace: polardbx-operator-system labels: kind: polardb-x spec: topology: nodes: cn: replicas: 2 template: image: polardbx/polardbx-sql:latest resources: limits: cpu: 2 memory: 4Gi dn: replicas: 2 template: image: polardbx/polardbx-engine:latest resources: limits: cpu: 2 memory: 4Gi cdc: replicas: 2 template: image: polardbx/polardbx-cdc:latest resources: limits: cpu: 2 memory: 4Gi
这里的name随便起名即可。
点击确定后等待创建即可。可以使用如下的命令查看创建进度
kubectl get pods --namespace polardbx-operator-system
整个过程大概会耗时10多分钟。在kuboard管理页面上可以在应用程序的容器组里面看到创建情况
当命令行出现这个的时候就代表创建好了。
备注:
1、这里我们创建的集群规格数是:GMS个数为1,CN个数为2,DN个数为2,CDC个数为2。
六、测试下安装的集群
这里由于安装之后,外部无法访问,因此这里我们使用官网推荐的临时端口转发的方式来进行转发验证。
kubectl get svc polardb-a
kubectl port-forward svc/polardb-a 3306
此时我们就可以访问3306了,使用navicat试一下
能连接成功,没有任何问题。我们再进去执行下命令
没有任何问题。
备注:
1、这里每个安装的polardb的集群实例都会有不同的密码,需要在kubernetes的集群节点上执行下面的命令查看具体的密码:
kubectl get secret polardb-a -o jsonpath="{.data['polardbx_root']}" | base64 -d - | xargs echo "Password: "
注意:这里的polardb-a是集群名称,查看密码的时候修改为自己的集群名称即可。
2、使用 kubectl port-forward命令其实转发的端口仅限于127.0.0.1访问,因此在navicat里面需要添加ssh通道。
七、非ssh访问
这里我们由于只能是内网访问,那么在真实使用的时候,肯定是会使ssh通道访问的,因此我们映射到某个端口,演示下使用nodeport进行访问
#切换到当前的名称空间 kubectl config set-context --current --namespace=polardbx-operator-system #开放端口,并且绑定到0.0.0.0 kubectl port-forward svc/polardb-a 3306 --address=0.0.0.0
此时再使用navicat访问的时候就不需要使用ssh了。
还没有评论,来说两句吧...