在谷歌Kuber雷竞技下载官网netes Engine (GKE)上安装Percona Server for MySQL¶
本指南向您展示如何在谷歌Kubernetes Engine (GKE)雷竞技下载官网上部署用于MySQL的Percona Operator。本文档假定您对该平台有一定的经验。有关GKE的更多信息,请参见Kubernetes引擎快速入门。
先决条件¶
本指南中的所有命令都可以在谷歌云外壳或在本地shell。
使用谷歌云外壳,你只需要一个现代的网络浏览器。
如果你想用的话本地shell,安装以下软件:
gcloud。该工具是谷歌云SDK的一部分。要安装它,请在谷歌云SDK官方文档页面然后按照说明做。
kubectl。它是用于管理和部署应用程序的Kubernetes命令行工具。使用实例安装工具。
美元gcloud身份验证登录美元gcloud组件安装kubectl
创建并配置GKE集群¶
方法配置设置gcloud工具。你也可以在云壳或者在您的本地shell中(如果您在上一步中已经在本地安装了谷歌Cloud SDK)。下面的命令将创建一个名为my-cluster-name:
美元gcloud容器集群创建my-cluster-name——项目<项目名称>——区us-central1-a——cluster-version1二十五分——机械化的n1-standard-4——num-nodes=3.
请注意
必须编辑以下命令和其他命令行语句以替换<项目名称>项目名称的占位符。您也可能被要求编辑区域位置,设置为us-central1在上面的例子中。其他参数指定我们正在创建一个具有3个节点和4个vcpu的机器类型的集群。
可能需要等待几分钟才能生成集群。
当流程结束时,您可以在谷歌Cloud控制台中看到它
选择Kubernetes引擎→集群在左侧菜单面板中:
现在您应该配置对新创建的集群的命令行访问kubectl能够使用它。
在谷歌云控制台中,选择您的集群,然后单击连接如上图所示。您将看到配置命令行访问的connect语句。在你编辑完语句后,你可以在你的本地shell中运行命令:
美元gcloud容器集群将凭证cluster1——区us-central1-a——项目<项目名称>
最后,使用你的云身份和访问管理(Cloud IAM)控制对集群的访问。下面的命令将使您能够创建Roles和RoleBindings:
美元kubectl创建clusterrolebindingcluster-admin-binding——clusterrole集群管理员——用户$ (gcloud配置能创造更多的价值核心/账户)
预期的输出
clusterrolebinding.rbac.authorization.k8s。io / cluster-admin-binding创建
安装Operator并部署MySQL集群¶
部署操作员。默认情况下,部署将在
默认的名称空间。如果这不是理想的名称空间,您可以创建一个新的名称空间和/或为该名称空间设置上下文,如下所示<名称空间名称>带有一些描述性名称的占位符):美元kubectl创建名称空间<名称空间美元名称>kubectl配置设置上下文$ (kubectl配置当前上下文)——名称空间=<名称空间名称>在成功的时候,你会看到这样的信息
命名空间/ <名称空间名称>,并且上下文(Gke_ <项目名称>_<区域位置>_<集群名称>)被修改。使用以下命令部署操作员:
美元kubectl应用- fhttps://raw.githubusercontent.com/雷竞技下载官网percona/percona-server-mysql-operator/v0.5.0/deploy/bundle.yaml预期的输出
apiextensions.k8s.io/perconaservermysqlbackups雷竞技下载官网.ps.percona.com创建customresourcedefintion.apiextensions.k8s.io /perconaservermysqlrestores.ps.percona.com创建serviceaccount/percona-server-mysql-operator created roles .rbac.authorization.k8s。Io 雷竞技下载官网/percona-server-mysql-operator-leaderelection创建role.rbac.authorization.k8s。Io 雷竞技下载官网/percona-server-mysql-operator创建了rolebinding.rbac.authorization.k8s。Io 雷竞技下载官网/percona-server-mysql-operator-leaderelection创建了rolebinding.rbac.authorization.k8s。Io 雷竞技下载官网/percona-server-mysql-operator created configmap/percona-server-mysql-operator-config created deployment。应用程序/雷竞技下载官网 percona-server-mysql-operator创建操作符已经启动,您可以部署您的MySQL集群:
美元kubectl应用- fhttps://raw.githubusercontent.com/雷竞技下载官网percona/percona-server-mysql-operator/v0.5.0/deploy/cr.yaml预期的输出
雷竞技下载官网perconaservermysql.ps.percona.com/cluster1创建请注意
这将部署默认的MySQL集群配置。请参阅部署/ cr.yaml和自定义资源选项用于配置选项。您可以通过执行以下命令克隆存储库的所有清单和源代码:
美元git克隆- bv0.5.0https://github.com/雷竞技下载官网percona/percona-server-mysql-operator编辑所需选项后,应用已修改的选项
部署/ cr.yaml文件如下:美元kubectl应用- f部署/ cr.yaml创建过程可能需要一些时间。进程结束后,您的集群将获得
准备好了的地位。您可以使用以下命令进行检查:美元kubectl得到ps预期的输出
NAME REPLICATION ENDPOINT STATE MYSQL ORCHESTRATOR HAPROXY ROUTER AGE cluster1 async cluster1- HAPROXY .default ready 3 3 3 5m50
您也可以通过对象浏览器跟踪谷歌云控制台的创建过程
当创建过程完成后,它将如下所示:
验证集群操作¶
启动集群可能需要10分钟。当Kubectl得到ps命令最终显示集群状态为准备好了,您可以尝试连接到集群。
的密码
根用于访问集群的用户。使用Kubectl得到秘密命令查看Secrets对象列表(默认情况下,您感兴趣的Secrets对象具有cluster1-secrets名字)。然后Kubectl get secret cluster1-secrets -o yaml命令将返回带有生成的Secrets的YAML文件,包括根密码,应该如下所示:…数据:…根:MWV1VDdZSGxYWHNhcHpYTjF3Ug = =这里实际的密码是base64编码的。使用
echo 'MWV1VDdZSGxYWHNhcHpYTjF3Ug==' | base64——解码命令将其恢复为人类可读的形式。使用
mysql工具并将其控制台输出连接到您的终端。下面的命令将执行此操作,命名新Pod雷竞技下载官网percona-client:美元kubectl运行-我——rm——tty雷竞技下载官网percona-client——图片=雷竞技下载官网percona: 8.0——重启=从来没有--bash伊尔执行它可能需要一些时间来部署相应的Pod。
现在运行
mysql在percona-cli雷竞技下载官网ent命令shell中使用Secret中获取的密码,而不是使用<根密码>占位符:美元mysql- hcluster1-haproxy-uroot- p <根密码>预期的输出
mysql:[警告]在命令行界面上使用密码是不安全的。欢迎来到MySQL监视器。raybet雷竞技竞猜在线官网命令以;或\ g。Percona Server (GPL), Release 21, Revision c59f87d2854版权(c)雷竞技下载官网 2009-2022 Percona LLC和/或其关联公司版权(c) 2000,2022, Oracle和/或其关联公司。Oracle是Oracle公司和/或其关联公司的注册商标。其他名称可能是其各自所有者的商标。输入'help;'或'\h'以获得帮助。输入'\c'清除当前输入语句。mysql >下面的示例将使用MySQL提示符检查
max_connections变量:mysql >显示变量就像“max_connections”;预期的输出
+-----------------+-------+ | Variable_name |值 | +-----------------+-------+ | max_connections | 158 | +-----------------+-------+ 1行集(0.02秒)mysql >
故障排除¶
如果Kubectl得到ps命令不显示准备好了状态过长,可以检查创建进程是否正常库贝特尔去拿吊舱命令:
美元kubectl得到豆荚
预期的输出
姓名就绪状态重启年龄cluster1-haproxy-0 2/2运行0 44 m cluster1-haproxy-1 2/2运行0 44 m cluster1-haproxy-2 2/2运行0 44 m cluster1-mysql-0 3/3运行0 46 m cluster1-mysql-1 3/3运行2(44米前)45 m cluster1-mysql-2 3/3运行2(42米前)43 m cluster1-orc-0 2/2运行0 46 m cluster1-orc-1 2/2运行45 m cluster1-orc-2 2/2运行0 0 44米percona-server-mysql-operator-7c984f7c9-mgwh4 1/1运行0 47米雷竞技下载官网
命令的输出显示了一些错误,可以使用Kubectl描述命令如下:
美元kubectl描述圆荚体cluster1-mysql-2
的详细信息警告语句,然后更正配置。警告的示例如下:
警告FailedScheduling 68s (x4 / 2m22s)默认调度器0/1节点可用:1个节点不匹配pod亲和性/反亲和性,1个节点不满足现有的pod反亲和性规则。
或者,您可以通过对象浏览器检查Pods
错误如下所示:
点击有问题的Pod将带您进入详细信息页面,并显示相同的警告:
移除GKE集群¶
有几种方法可以删除集群。
方法清理集群gcloud命令如下:
美元gcloud容器集群删除<集群名称>
返回语句要求您确认删除。类型y来确认。
此外,您还可以通过谷歌云控制台删除您的集群
只需点击删除在集群列表中弹出菜单项:
删除集群可能需要一段时间。
警告
删除集群后,集群中存储的所有数据将丢失!