创建并部署 WordPress

本节以安装 WordPress 为例,演示如何在 KubeSphere Web 控制台部署应用程序,并在集群外进行访问。有关应用资源管理的更多信息,请参阅项目管理

WordPress 简介

WordPress 是一款基于 PHP 的免费、开源内容管理系统,您可以使用 WordPress 搭建自己的网站。完整的 WordPress 应用程序包括以下 Kubernetes 对象,由 MySQL 作为后端数据库。

WordPress

前提条件

  • 准备一个项目(例如 demo-project)和一个已邀请到该项目的用户(例如 project-regular)。该用户在项目中应具有 operator 角色。有关更多信息,请参阅控制用户权限

  • KubeSphere 平台需要安装并启用 KubeSphere 服务网格扩展组件。

操作步骤

1. 创建保密字典

创建两个保密字典,分别用于设置 MySQL 和 WordPress 的 root 密码。

  1. 使用 project-regular 用户登录 KubeSphere Web 控制台,点击企业空间管理并进入项目所在的企业空间,在项目列表中点击 demo-project

  2. 在左侧导航栏,选择配置 > 保密字典,在页面右侧点击创建

  3. 基本信息页签,输入保密字典的基本信息(例如,将名称设置为 mysql-secret),点击下一步

  4. 数据配置页签,点击添加数据添加键值对。

  5. 分别设置为 MYSQL_ROOT_PASSWORD123456,在页面右下角点击check保存设置。

  6. 点击创建以创建保密字典,用于为 MySQL 提供 root 密码。

  7. 重复以上步骤创建一个名为 wordpress-secret 的保密字典,将分别设置为 WORDPRESS_DB_PASSWORD123456,用于为 WordPress 提供 root 密码。

2. 创建持久卷声明

创建持久卷声明用于存储 WordPress 应用数据。

  1. 在左侧导航栏,选择存储 > 持久卷声明,在页面右侧点击创建

  2. 基本信息页签,输入持久卷声明的基本信息(例如,将名称设置为 wordpress-pvc),点击下一步

  3. 存储设置页签,点击下一步

  4. 高级设置页签,点击创建即可。

3. 创建 MySQL 应用

创建 MySQL 应用为 WordPress 提供数据库服务。

  1. 在左侧导航栏,选择服务网格 > 自制应用,在页面右侧点击创建

  2. 基本信息页面,输入应用基本信息(例如,将名称设置为 wordpress),点击下一步

  3. 服务设置页面,点击创建服务为自制应用创建一个服务。

  4. 创建服务对话框,点击有状态服务

  5. 在弹出的创建有状态服务对话框,输入有状态服务的名称(例如 mysql)并点击下一步

  6. 容器组设置页签,点击添加容器

  7. 在搜索框中输入 mysql:5.6,按下回车键,向下滚动鼠标,点击使用默认镜像端口

    说明

    此时配置还未完成,请不要在页面右下角点击check

  8. 容器组设置页签的高级设置区域,将内存上限设置为 1000 Mi 或以上,否则 MySQL 可能因内存不足而无法启动。

  9. 向下滚动鼠标到环境变量区域,选择环境变量,在下拉框中选择来自保密字典。参数设置如下:

    • :设置为 MYSQL_ROOT_PASSWORD

    • 资源:设置为 mysql-secret

    • 资源中的键:设置为 MYSQL_ROOT_PASSWORD

  10. 点击check保存配置,然后点击下一步

  11. 存储设置页签,点击添加持久卷声明模板

  12. 输入 PVC 名称前缀(例如,mysql),并指定挂载路径(模式:读写,路径:/var/lib/mysql)。

  13. 点击check保存配置,然后点击下一步

  14. 高级设置页签,点击创建以创建 MySQL 应用。

4. 创建 WordPress 应用

  1. 再次点击创建服务。在弹出的创建服务对话框,点击无状态服务

  2. 在弹出的创建无状态服务对话框,输入无状态服务的名称(例如,wordpress)并点击下一步

  3. 容器组设置页签,点击添加容器

  4. 在搜索框中输入 wordpress:4.8-apache,按下回车键,向下滚动鼠标,点击使用默认镜像端口

    说明

    此时配置还未完成,请不要在页面右下角点击check

  5. 向下滚动鼠标到环境变量区域,选择环境变量。此处需要添加两个环境变量,请按如下信息设置:

    • 在下拉框中选择来自保密字典,输入键名称 WORDPRESS_DB_PASSWORD,选择资源 wordpress-secret 和资源值 WORDPRESS_DB_PASSWORD

    • 点击添加环境变量,分别输入键名称 WORDPRESS_DB_HOST 和值 mysql

      说明

      WORDPRESS_DB_HOST 环境变量的值必须与创建 MySQL 应用中创建的 MySQL 有状态服务的名称完全相同。否则,WordPress 将无法连接到 MySQL 数据库。

  6. 点击check保存配置,然后点击下一步

  7. 存储设置页签,点击挂载卷

  8. 持久卷页签,点击选择持久卷声明

  9. 选择已创建的 wordpress-pvc,将模式设置为读写,并输入挂载路径 /var/www/html

  10. 点击check保存配置,再点击下一步

  11. 高级设置页签,点击创建

  12. 服务页面,点击下一步

  13. 路由设置页面,点击创建以创建 WordPress。您可以在自制应用页面查看已创建的应用。

5. 验证 WordPress 是否创建成功

  1. 在左侧导航栏,选择应用负载 > 工作负载

  2. 分别检查部署页签和有状态副本集页签 wordpress-v1mysql-v1 的运行状态,若两者状态都为运行中,则表明 WordPress 创建成功。

6. 通过 NodePort 访问 WordPress

  1. 在左侧导航栏,选择应用负载 > 服务

  2. 点击 wordpress 右侧的 more,选择编辑外部访问

  3. 访问模式中选择 NodePort,点击确定

  4. 点击 wordpress 进入详情页,在资源状态页签下的端口区域,您可以查看暴露的节点端口。

  5. 在浏览器中输入 <节点 IP>:<节点端口>,即可从集群的外部访问 WordPress,如下图所示。

    wordpress page

    说明

    取决于您的 Kubernetes 集群的部署环境,您可能需要在安全组中放行端口并配置相关的端口转发规则。

通过邮件接收 KubeSphere 最新的技术博客与产品更新的通知


感谢您的反馈。如果您有关于如何使用 KubeSphere 的具体问题,请在 Slack 上提问。如果您想报告问题或提出改进建议,请在 GitHub 存储库中打开问题。