雷竞技下载官网Kraybet雷竞技竞猜在线官网ubernetes中的Percona监控和管理在过去的几年里,我们看到人们对在Kubernetes中运行数据库和有状态工作负载越来越感兴趣。与<一个href="https://kubernetes.io/blog/2019/01/15/container-storage-interface-ga/">容器存储接口<跨度风格=“粗细:400;”>(CSI)的成熟和越来越多的运营商的出现,在您喜欢的平台上运行有状态工作负载不再那么可怕了。我们在Percona的Kubernetes故事开雷竞技下载官网始于<一个href="//m.doggingzone.com/software/percona-kubernetes-operators">运营商<跨度风格=“粗细:400;”>用于MySQL和MongoDB,稍后将添加PostgreSQL。

雷竞技下载官网Praybet雷竞技竞猜在线官网ercona监控与管理<跨度风格=“粗细:400;”>(PMM)是一个开放源码的数据库监视、可观察性和管理工具。raybet雷竞技竞猜在线官网它可以部署在虚拟设备或Docker容器中。长期以来,我们的客户要求我们提供一种在Kubernetes中部署PMM的方法。我们有一个非官方的掌舵图,是由Percona团队和社区作为PoC创建的(雷竞技下载官网<一个href="https://github.com/Percona-Lab/percona-openshift/tree/main/helm/pmm-server">GitHub<跨度风格=“粗细:400;”>).

我们正在介绍的技术预览<一个href="https://helm.sh"><跨度风格=“粗细:400;”>图表,以便在Kubernetes中轻松部署PMM。雷竞技下载官网您可以在我们的helm chart存储库中找到它<一个href="https://github.com/percona/percona-helm-charts/tree/main/charts/pmm">在这里<跨度风格=“粗细:400;”>。

用例

单一平台

如果Kubernetes是你选择的一个平台,目前你需要一个单独的虚拟机来运行Percona Monitoring and Management。雷竞技下载官网raybet雷竞技竞猜在线官网不要再介绍舵图了。

如你所知,Percona 雷竞技下载官网operator都集成了PMM,可以监控部署在Kubernetes上的数据库。raybet雷竞技竞猜在线官网操作人员配置和部署PMM -client侧车容器,并在PMM服务器上注册节点。将PMM引入Kubernetes简化了这种集成和整个流程。现在PMM -client和PMM服务器之间的网络流量根本不会离开Kubernetes集群。

您所要做的就是在Custom Resource清单中的pmm部分中设置正确的端点。例如,对于<一个href="//m.doggingzone.com/doc/kubernetes-operator-for-psmongodb/index.html">雷竞技下载官网MongoDB的Percona Operator, PMM部分看起来像这样:

在哪里<跨度风格=“粗细:400;”>raybet雷竞技竞猜在线官网监控服务<跨度风格=“粗细:400;”>是由helm图表创建的用于公开PMM服务器的服务。

高可用性

雷竞技下载官网Praybet雷竞技竞猜在线官网ercona Monitoring and Management有很多可移动的部分:Victoria Metrics用于存储时间序列数据,ClickHouse用于查询分析功能,PostgreSQL用于保存PMM配置。现在,所有这些组件都是单一容器或虚拟机的一部分,Grafana作为前端。为了在任何环境中提供零停机部署,我们需要解耦这些组件。这将大大复杂化PMM的安装和管理。

我们现在提供的是在故障发生时在几分钟内自动恢复PMM的方法(例如利用EC2自愈机制)。

Kubernetes是一个用于容器编排的控制平面,可以为工程师自动执行手动任务。当你在Kubernetes中运行软件时,最好依靠它的原语来处理所有繁重的工作。这就是PMM在Kubernetes中的样子:

Kubernetes中的PMM

  • statfulset控制Pod的创建
  • 有一个单独的Pod,其中有一个容器,其中包含所有组件
  • 该Pod通过PMM用户和PMM客户端使用的服务公开
  • 所有数据都存储在一个持久卷中
  • ConfigMap有各种环境变量<一个href="//m.doggingzone.com/doc/percona-monitoring-and-management/1.x/glossary.option.html">设置<跨度风格=“粗细:400;”>可以帮助微调PMM

如果节点或Pod发生故障,StatefulSet将自动恢复PMM Pod并将Persistent Volume重新挂载到它。恢复时间取决于集群的负载和节点的可用性,但在正常的操作环境中,PMM Pod在一分钟内就会启动并再次运行。

部署

让我们看看如何在Kubernetes中部署PMM。

添加舵图:

安装PMM:

您现在可以使用LoadBalancer IP地址登录到PMM,并使用存储在<跨度id="crayon-64368b5bc74f5485747607" class="crayon-syntax crayon-syntax-inline crayon-theme-familiar crayon-theme-familiar-inline crayon-font-monaco" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;">pmm-<跨度class="crayon-i">秘密年代ecret对象(默认用户为admin)。

调用为PMM创建的Service对象<跨度id="crayon-64368b5bc74f6727672413" class="crayon-syntax crayon-syntax-inline crayon-theme-familiar crayon-theme-familiar-inline crayon-font-monaco" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;">raybet雷竞技竞猜在线官网监控-<跨度class="crayon-i">服务

通过连接到登录到PMM<跨度风格=“粗细:400;”>HTTPS:// < YOUR_PUBLIC_IP >。

定制

Helm chart是YAML清单的模板引擎,它允许用户自定义部署。您可以看到可以设置以微调PMM安装的各种参数<一个href="https://github.com/percona/percona-helm-charts/tree/main/charts/pmm">自述<跨度风格=“粗细:400;”>。

例如,要设置选择另一个存储类并设置所需的存储大小,请设置以下标志:

中也可以更改这些参数<一个href="https://github.com/percona/percona-helm-charts/blob/main/charts/pmm/values.yaml">values.yaml<跨度风格=“粗细:400;”>并使用“-f”标志:

维护

对于大多数维护任务,可以使用常规的Kubernetes技术。让我们回顾几个例子。

计算比例

可以通过添加或删除资源来垂直扩展PMM<跨度id="crayon-64368b5bc74fd497861934" class="crayon-syntax crayon-syntax-inline crayon-theme-familiar crayon-theme-familiar-inline crayon-font-monaco" style="font-size: 12px !important; line-height: 15px !important;font-size: 12px !important;">pmmResourcesvalues.yaml中的变量。

完成后,升级部署:

这将重新启动PMM Pod,因此最好仔细计划它,以免扰乱团队的工作。

存储扩展

这在很大程度上取决于您的存储接口功能和底层实现。在大多数云中,持久卷可以是<一个href="https://kubernetes.io/docs/concepts/storage/storage-classes/">扩大<跨度风格=“粗细:400;”>。你可以通过描述它来检查你的存储类是否支持它:

不幸的是,只是在值中更改存储的大小。yaml (<跨度风格=“粗细:400;”>storage.size<跨度风格=“粗细:400;”>)将不起作用,您将看到以下错误:

我们使用statfulset对象来部署PMM,而statfulset大多是不可变的,有一些东西可以动态更改。不过这里有个小窍门。

首先,删除statfulset,但保留pod和pvc:

使用新的存储配置重新创建它:

它将用新的存储大小配置重新创建StatefulSet。

手动编辑Persistent Volume Claim并更改存储大小(您可以使用不同的PVC名称)。你需要更改存储空间<跨度风格=“粗细:400;”>spec.resources.requests.storage<跨度风格=“粗细:400;”>部分:

PVC还没有调整大小,当你描述它时,你可以看到以下消息:

最后一步是重新启动Pod:

升级

运行<跨度风格=“粗细:400;”>执掌升级<跨度风格=“粗细:400;”>是一种推荐的方法。一旦发布了新的掌舵图,或者当您想通过替换文件中的图像来升级PMM的新版本时<跨度风格=“粗细:400;”>图像<跨度风格=“粗细:400;”>部分。

备份和恢复

PMM将所有数据存储在一个Persistent Volume中。如前所述,这里可以应用常规的Kubernetes技术来备份和恢复数据。有很多选择:

接下来会发生什么

为了让你保持兴奋,我们正在做或计划做很多事情来支持进一步的Kubernetes集成。

OpenShift支持

我们正在构建一个无根的容器,这样OpenShift用户就可以在那里运行Percona监控和管理,而无需授予更高的权限。雷竞技下载官网raybet雷竞技竞猜在线官网

Microservices架构

这个问题我们内部已经讨论了一段时间了。如前所述,PMM中有许多组件。为了实现适当的水平扩展,我们需要分解我们的整体容器,并将这些组件作为单独的微服务运行。

管理所有这些独立的容器和pod(如果我们谈论的是Kubernetes),将需要提出单独的维护策略。这就提出了为PMM创建一个单独的Operator来管理所有这些的问题,但这是一项重要的工作。如果你有什么意见,请在我们的社区论坛上告诉我们。

在DBaaS中自动注册k8s

如您所知,Percona监雷竞技下载官网控raybet雷竞技竞猜在线官网和管理附带的技术预览<一个href="https://docs.percona.com/percona-monitoring-and-management/using/dbaas.html">数据库即服务(DBaaS)<跨度风格=“粗细:400;”>。现在,当您在Kubernetes集群上安装PMM时,您仍然需要注册集群以部署数据库。我们希望自动化此过程,以便在安装后您可以立即开始部署和管理数据库。

结论

雷竞技下载官网Praybet雷竞技竞猜在线官网ercona监控与管理使数据库管理员和站点可靠性工程师能够查明开源数据库环境中的问题,无论是快速查看仪表板还是使用Query Analytics进行详细分析。雷竞技下载官网Percona在Kubernetes上对PMM的支持是对我们正在改造其基础设施的客户需求的回应。

一些有用的链接可以帮助你在Kubernetes上部署PMM: