Mysql operator for Kubernetes介绍

    MySQL Operator for Kubernetes 是一个用于安装和管理一个或多个 MySQL InnoDB Clusters  的操作工具。 MySQL operator 本身在 Kubernetes 集群中运行,并由 Kubernetes Deployment 控制,以确保 MySQL operator 保持可用和运行。

MySQL Operator for Kubernetes 具有如下功能:

v 开发维护工作由 Mysql InnoDB Cluster 开发团队提供支持 

v 自动化部署和管理 MySQL Server MySQL Router 

v 自动扩缩 MySQL Server MySQL Router 

v 自愈 Self-healing 

v 数据库备份和恢复 

v 以最少的停机时间滚动升级 

v 配置管理 

v InnoDB CLONE 部署 

v 支持私有容器仓库


MySQL Operator for Kubernetes  架构图

一个InnoDB Cluster资源被部署到k8s API Server,MySQL Operator for Kubernetes 会创建以下资源

q 一个用于MySQL实例的Kubernetes StatefulSet

    它是 管理着Pod并分配相应的存储卷。由这个StatefulSet管理的每个Pod都运行多个容器。几个容器提供了一连串的初始化步骤,用于准备MySQL服务器的配置和数据目录,然后两个容器保持活跃的运行模式。

其中一个容器(名为 " mysql ") 运行MySQL服务器本身

另一个(名为 "sidecar") 是一个Kubernetes sidecar , 负责与operator本身协调,对节点进行本地管理

q 一个用于MySQL Routers的Kubernetes Deployment。

      MySQL Routers是无状态服务,根据应用程序的选择,将应用程序路由到当前的Primary或Replica。operator可以根据Cluster的工作负载要求,增加或减少Routers的数量。

一个 MySQL InnoDB Cluster 部署会创建这些 Kubernetes 服务:

q 一个服务是 InnoDB Cluster 的名称。 它作为 应用程序的主要入口点,并将传入的连接发送到 MySQL 路由器 。它们以 '{ clustername }. svc.cluster.local ' 的形式提供稳定的名称,并暴露特定的端口。 q 第二个名为 ‘{ clustername }-instance’ 的服务 为各个服务器提供稳定的名字 。通常不应该被直接使用,如果为了维护或监控目的,可能需要直接访问一个实例。



请使用浏览器的分享功能分享到微信等