在 Oracle Cloud Infrastructure Kubernetes Engine 集群中部署高可用性 MySQL Database 系统
Oracle MySQL Database Service 是一项完全托管的数据库服务,部署在 Oracle Cloud Infrastructure (OCI) 中,支持希望快速部署安全云原生应用的运营商和开发人员。您可以使用 OCI Service Operator for Kubernetes (OSOK) 为部署在 Oracle Cloud Infrastructure Kubernetes Engine 集群( OCI Kubernetes Engine 或 OKE)集群中部署的高可用性 MySQL Database 系统的应用程序预配和管理 MySQL Database 系统。
使用 OSOK 可以简化 OKE 管理员的 MySQL Database 系统管理,并允许使用 Kubernetes 程序包管理工具 Helm 将 MySQL Database System 实例与应用程序一起部署。
体系结构
此参考体系结构显示部署在 OKE 集群中的应用程序,该应用程序使用高可用性 MySQL Database System 作为其数据库。MySQL Database 系统完全通过 OSOK 在 OKE 集群中进行部署和管理。
OSOK 允许使用标准 Kubernetes CLI - kubectl,通过将 MySQL Database 系统建模为定制资源定义 (Custom Resource Definition,CRD) 并将这些定义应用于 OKE 集群,使 MySQL Database 系统像任何其他 Kubernetes 资源一样进行管理。
MySQL Database 系统可以部署为独立系统,也可以部署为高可用性 (High Availability,HA)。启用 HA 的 MySQL Database 系统包含三个实例,这些实例部署在不同的可用性域或容错域中。应用程序连接到单个端点以对数据库进行读写。如果发生故障,数据库系统将自动故障转移到辅助实例,而无需重新配置应用程序。
下图说明了此引用体系结构。

插图 oci-mysql-oke-ha-arch.png 的说明
oci-mysql-oke-ha-arch-oracle.zip
该体系结构具有以下组件:
- 区域
Oracle Cloud Infrastructure 区域是包含一个或多个数据中心(称为可用性域)的本地化地理区域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。
- 可用性域
可用性域是区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错能力。可用性域不共享电源或冷却设备等基础设施,也不共享内部可用性域网络。因此,一个可用性域出现故障不会影响区域中的其他可用性域。
- 容错域
容错域是可用性域内的一组硬件和基础设施。每个可用性域都有三个容错域,它们具有独立的电源和硬件。在多个容错域之间分配资源时,应用可以承受容错域内的物理服务器故障、系统维护和电源故障。
- 虚拟云网络 (VCN) 和子网
VCN 是一个可定制的软件定义网络,您可以在 Oracle Cloud Infrastructure 区域中设置。与传统的数据中心网络一样,VCN 允许您控制您的网络环境。VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 划分为子网,子网可以限定为区域或可用性域。每个子网都包含一系列不与 VCN 中的其他子网重叠的连续地址。可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。
- OCI Kubernetes 引擎
Oracle Cloud Infrastructure Kubernetes Engine (Kubernetes Engine 或 OKE )是一项完全托管、可扩展的高可用性服务,可用于将容器化应用部署到云中。您可以指定应用所需的计算资源,Kubernetes Engine 在现有租户的 Oracle Cloud Infrastructure 上预配这些资源。OKE 使用 Kubernetes 跨主机集群自动部署、扩展和管理容器化应用。
- Oracle MySQL Database Service
Oracle MySQL Database Service 是完全托管的 Oracle Cloud Infrastructure (OCI) 数据库服务,可帮助开发人员快速开发和部署安全的云原生应用。Oracle MySQL Database Service 针对 OCI 专有功能进行了优化,由 OCI 和 MySQL 工程团队 100% 构建、管理和支持。
Oracle MySQL Database Service 具有集成的高性能分析引擎 (HeatWave),可直接对可操作的 MySQL 数据库运行复杂的实时分析。
- 网络地址转换 (NAT) 网关
通过 NAT 网关,VCN 中的专用资源可以访问 Internet 上的主机,而不会向传入的 Internet 连接公开这些资源。
- 服务网关
通过服务网关,您可以从 VCN 访问其他服务,例如 Oracle Cloud Infrastructure Object Storage 。从 VCN 到 Oracle 服务的流量通过 Oracle 网络结构传输,不会通过互联网传输。
- 注册表
Oracle Cloud Infrastructure Registry 是一个由 Oracle 管理的注册表,可帮助您简化开发到生产工作流。通过注册表,您可以轻松地存储、共享和管理开发对象,例如 Docker 映像。Oracle Cloud Infrastructure 的高可用性和可扩展性架构可确保您能够可靠地部署和管理应用。
- 负载平衡器
Oracle Cloud Infrastructure Load Balancing 服务提供从单个入口点到后端多个服务器的自动流量分配。
- 路由表
虚拟路由表包含用于将流量从子网路由到 VCN 之外目的地的规则,通常是通过网关。
- 安全列表
对于每个子网,可以创建安全规则来指定必须允许进出子网的通信的源、目标和类型。
推荐
- VCN
创建 VCN 时,请根据您计划附加到 VCN 中子网的资源数量,确定所需的 CIDR 块数和每个块的大小。使用标准专用 IP 地址空间内的 CIDR 块。
选择不与要设置专用连接的任何其他网络(在 Oracle Cloud Infrastructure 、您的内部部署数据中心或其他云提供商中)重叠的 CIDR 块。
创建 VCN 后,您可以更改、添加和删除其 CIDR 块。
设计子网时,请考虑流量和安全要求。将特定层或角色中的所有资源附加到可以用作安全边界的同一子网。
- 负载平衡器带宽
创建负载平衡器时,您可以选择提供固定带宽的预定义配置,也可以指定定制(灵活)配置,在其中设置带宽范围并允许服务根据流量模式自动扩展带宽。通过任一方法,您都可以在创建负载平衡器后随时更改配置。
- 安全列表
使用安全列表定义应用于整个子网的入站和出站规则。
- Oracle MySQL Database Service
在此体系结构中,应用程序将关系数据存储在 Oracle MySQL Database Service 中。我们建议使用最新版本。
注意事项
在 Oracle Cloud 中部署应用时,请考虑以下可用性选项。
- 应用程序可用性
应用在部署中部署了多个云池,以提供高可用性。
- My SQL Database Service 的可用性和可扩展性
高可用性架构中显示的 MySQL Database 服务使用内置的 MySQL 高可用性选项,该选项可创建三个实例并将其置于不同的容错域中。
- 安全
使用限制谁可以访问可用 OCI 资源的策略。OKE 与 OCI Identity and Access Management (IAM) 集成。IAM 通过原生 OCI 身份功能提供轻松的身份验证。
部署
可以从 OKE 集群部署和管理此参考架构,而无需使用 OCI 控制台或 CLI,也可以使用 Helm 图表进行自动化。此参考架构的示例 Helm 图表可帮助您轻松从部署在 OCI 中的 Kubernetes 集群创建和管理 MySQL Database 系统。您可以从 GitHub 下载代码,并根据您的特定要求对其进行定制。
- 转至 GitHub 。
- 将资料档案库克隆或下载到本地计算机。
- 按照
README
文档中的说明进行操作。