Oracle Cloud Infrastructure Kubernetes Engine 上使用 MySQL Database Service 部署 WordPress

充分利用在 Oracle Cloud Infrastructure (OCI) 上托管 WordPress Web 页和博客的灵活性和成本优势。

WordPress 是用于管理网页和博客的最常用内容管理系统 (CMS) 之一。通过以下 OCI 服务提高 WordPress 部署的可扩展性和可用性:
  • Oracle Cloud Infrastructure Kubernetes EngineOCI Kubernetes Engine 或 OKE)可提供高度可扩展和可用的 Wordpress 部署,而无需部署或管理 Kubernetes 集群。
  • MySQL Database Service 可为您的 WordPress 应用程序提供高性能数据库,而无需预配或管理数据库。
  • 共享持久存储的文件存储服务(WordPress 必需),可供应用的所有实例访问,以实现高可用性。

体系结构

此参考体系结构显示了 OKE 群集中的高可用性和可伸缩性 WordPress 部署。此部署使用文件存储服务作为持久性存储,使用 MySQL Database 服务作为数据库。分配了具有外部 IP 的负载平衡器以提供对 WordPress 应用程序的访问。

下图说明了此引用体系结构。

下面是 oci-mysql-oke-wordpress-arch.png 的说明
插图 oci-mysql-oke-wordpress-arch.png 的说明

oci-mysql-oke-wordpress-arch-oracle.zip

以下部分介绍了此参考体系结构:

在 OKE 群集中,您可以为部署选择 WordPress 应用程序云池的数量。每个云池都需要访问持久性共享存储。为了提供存储,将在群集中创建一个映射到文件存储上的 NFS 共享的存储类资源。然后,持久性卷资源使存储类提供的存储可供集群中的资源使用。将创建持久卷声明 (Persistent-volume-claim,PVC) 资源来指示云池希望利用存储。PVC 映射在 WordPress 应用程序云池中以访问存储。

WordPress 应用程序的数据库使用 MySQL Database Service。MySQL Database Service 实例是在 OKE 集群中创建和管理的,它是使用 OCI Service Operator for Kubernetes (OSOK) 定义的定制资源。

MySQL Database 服务使用跨不同可用性域或容错域部署的三个 MySQL Database 服务实例通过高可用性 (HA) 部署。WordPress 应用程序连接到单个端点以对数据库进行读写。如果发生故障,数据库系统将自动故障转移到辅助实例,而无需重新配置 WordPress 应用程序。

负载平衡器是从 OKE 集群作为服务资源创建和管理的,该服务资源类型为 LoadBalancer。

该体系结构具有以下组件:

  • 区域

    Oracle Cloud Infrastructure 区域是包含一个或多个数据中心(称为可用性域)的本地化地理区域。地区独立于其他地区,远距离可以把它们分开(跨越国家甚至大陆)。

  • 可用性域

    可用性域是区域中的独立数据中心。每个可用性域中的物理资源与其他可用性域中的资源隔离,从而提供容错能力。可用性域不共享电源或冷却设备等基础设施,也不共享内部可用性域网络。因此,一个可用性域出现故障不会影响区域中的其他可用性域。

  • 容错域

    容错域是可用性域内的一组硬件和基础设施。每个可用性域都有三个容错域,它们具有独立的电源和硬件。在多个容错域之间分配资源时,应用可以承受容错域内的物理服务器故障、系统维护和电源故障。

  • 虚拟云网络 (VCN) 和子网

    VCN 是一个可定制的软件定义网络,您可以在 Oracle Cloud Infrastructure 区域中设置。与传统的数据中心网络一样,VCN 允许您控制您的网络环境。VCN 可以具有多个不重叠的 CIDR 块,您可以在创建 VCN 后更改这些块。您可以将 VCN 划分为子网,子网可以限定为区域或可用性域。每个子网都包含一系列不与 VCN 中的其他子网重叠的连续地址。可以在创建后更改子网的大小。子网可以是公共子网,也可以是专用子网。

  • Kubernetes 引擎

    Oracle Cloud Infrastructure Kubernetes EngineOCI Kubernetes EngineOKE )是一项完全托管、可扩展的高可用性服务,可用于将容器化应用部署到云中。您可以指定应用所需的计算资源,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 数据库运行复杂的实时分析。

  • 文件存储

    Oracle Cloud Infrastructure File Storage 服务提供持久、可扩展、安全的企业级网络文件系统。您可以从 VCN 中的任何裸金属、虚拟机或容器实例连接到文件存储服务文件系统。您还可以使用 Oracle Cloud Infrastructure FastConnect 和 IPSec VPN 从 VCN 外部访问文件系统。

  • WordPress 内容管理系统 (CMS)

    WordPress CMS 使您能够构建功能齐全的博客网站或通用网站。

  • 网络地址转换 (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

    在此体系结构中,WordPress CMS 将关系数据存储在 Oracle MySQL Database Service 中。我们建议使用最新版本。

注意事项

在 Oracle Cloud 中部署 WordPress 时,请考虑以下有关可扩展性和可用性的信息:

  • 应用程序可用性

    WordPress 应用程序在部署中部署了多个云池,以提供高可用性。

  • My SQL Database Service 的可用性和可扩展性

    高可用性架构中显示的 MySQL Database 服务使用内置的 MySQL 高可用性选项,该选项可创建三个实例并将其置于不同的容错域中。

部署

可以从 OKE 集群部署和管理此参考架构,而无需使用 OCI 控制台或 CLI,也可以使用 Helm 图表进行自动化。此参考架构的示例 Helm 图表演示了如何使用 MySQL Database System 作为部署在 OCI for HA 或非 HA 的 Kubernetes 集群中的数据库来引导 WordPress 部署。您可以从 GitHub 下载代码,并根据您的特定要求对其进行定制。

  1. 转至 GitHub - HA 或 GitHub - non-HA
  2. 将资料档案库克隆或下载到本地计算机。
  3. 按照 README 文档中的说明进行操作。

致谢

  • Authors :Chiping Hwang、Hassan Ajan
  • 贡献者:Anupama Pundpal