perconalab/sysbenchpercona-openshift是一套用于在OpenShift、Kubernetes及Google Cloud Kubernetes Engine(GKE)中运行Percona软件的脚本集,主要支持Percona XtraDB Cluster、PMM-Server等组件的部署与管理,并提供备份恢复、配置自定义及问题反馈等功能。
重要提示:建议考虑使用Percona XtraDB Cluster Operator。
若在Percona Docker镜像或相关项目中发现Bug,需提交至对应项目的JIRA issue跟踪系统。
参考资源:Elika Etemad的Bug报告撰写指南。
推荐通过Helm图表部署软件套件。
若需使用PMM监控,从helm/helm-pmm-server目录执行部署:
bashhelm install --name monitoring ./helm/helm-pmm-server
部署后通过以下命令查看暴露的公网IP:
bashkubectl get service
示例输出:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE monitoring-service Load*** 10.31.242.113 35.233.168.128 80:32516/TCP 10m
bashhelm install --name cluster1 ./helm/helm-server
默认部署包含前端ProxySQL及每个节点的PMM-Client。查看Pod状态:
bashkubectl get service
示例输出:
NAME READY STATUS RESTARTS AGE cluster1-node-0 2/2 Running 0 5m cluster1-node-1 2/2 Running 0 4m cluster1-node-2 2/2 Running 0 3m cluster1-proxysql-0 2/2 Running 0 5m monitoring-0 1/1 Running 0 1h
bashkubectl exec -it cluster1-proxysql-0 -c proxysql -- mysql -h127.0.0.1 -P6032 -uadmin -padmin
bashkubectl run -i --tty percona-client --image=percona:5.7 --restart=Never -- bash -il root@percona-client:/# mysql -hcluster1-proxysql -uroot -psecr3t
注意:当前ReplicaSet功能损坏,不支持ProxySQL。
部署命令:
bashhelm install --name rs1 . -f values.yaml --set kind=replicaset
PMM-Server和PMM-Client需以root用户(user:0)运行,在OpenShift中部署时需执行:
bashhelm install --name dep1 . -f values.yaml --set pmm.enabled=false,platform=openshift
或编辑values.yaml修改pmm.enabled和platform配置。
backup-volume.yaml。bashkubectl apply -f xtrabackup-job.yaml
cluster1-node-0.cluster1-nodes-2018-06-18-17-26)。部署前需创建访问Percona Server/Percona XtraDB Cluster的密码(密钥)。提供示例文件,请使用自定义安全密码。
echo -n 'securepassword' | base64(用于secret.yaml)。echo YmFja3VwX3Bhc3N3b3Jk | base64 -d(从secret.yaml解码)。StorageClass提供持久卷(Persistent Volume),若无需手动创建。部署文件pxc.yaml将创建包含N个节点的有状态集(StatefulSet),副本数由replicas: 3定义。注意服务名(如name: pxccluster1)。
待办事项:
部署文件proxysql-pxc.yaml创建ProxySQL服务并自动配置流量处理,通过- -service=pxccluster1指定目标PXC服务。
待办事项:
支持通过配置映射(ConfigMap)自定义MySQL配置:
mysql-configmap.yaml添加所需配置。bashkubectl create -f mysql-configmap.yaml
在OpenShift中,将kubectl替换为oc。
kubectl get nodeskubectl get podskubectl create -f replica-set.yamlkubectl delete -f replica-set.yamlwatch kubectl get podskubectl describe po/rsnode-0kubectl logs -f rsnode-0kubectl logs -f rsnode-1 -c clone-mysqlkubectl exec rsnode-0 -it -- bashkubectl exec rsnode-0 -it -- mysql -uroot -proot_passwordkubectl exec proxysql-0 -it -- mysql -uadmin -padmin -h127.0.0.1 -P6032一键准备sysbench-tpcc数据库:
bashkubectl run sysbench1 --image=perconalab/sysbench --restart=Never --env="LUA_PATH=/sysbench/sysbench-tpcc/?.lua" --command -- sysbench-tpcc/tpcc.lua --mysql-host=cluster1-node-0.cluster1-nodes --mysql-user=root --mysql-password=secr3t --scale=10 --mysql-db=sbtest --db-driver=mysql --force-pk=1 prepare
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务