创建并发布 WordPress

WordPress 简介

WordPress 是使用 PHP 语言开发的内容管理系统软件,用户可以在支持 PHP 和 MySQL 数据库的服务器上使用自己的博客,一个完整的 WordPress 应用程序包括以下 Kubernetes 对象。

WordPress

目的

本教程演示如何在 KubeSphere 中创建应用程序(以 WordPress 为例)并在集群外访问它。

准备工作

需要一个project regular帐户,并在其中一个项目中分配角色operator(该用户已被邀请参加该项目)。有关详细信息,请参见创建企业空间、项目、帐户和角色

预计操作时间

大约 15 分钟。

动手操作

任务 1:创建密钥

创建 MySQL 密钥

环境变量WORDPRESS_DB_PASSWORD是连接到 WordPress 数据库的密码。在这一步中,您需要创建一个密钥来保存将在 MySQL Pod 模板中使用的环境变量。

  1. 使用project-regular帐户登录 KubeSphere 控制台,转到demo-project的详细页面并导航到配置,在密钥中,单击右侧的创建

    create-secret

  2. 输入基本信息(例如,将其命名为mysql-secret),然后单击下一步。在下一页中,选择类型默认,然后单击添加数据来添加一个键值对。输入键(Key)MYSQL_ROOT_PASSWORD和值(Value)123456单击右下角的确认按钮,完成后,单击 创建 按钮并继续.

    key-value

创建 WordPress 密钥

按照上面创建 MySQL 密钥相同的步骤创建一个名字为wordpress-secret的密钥,输入键(Key)WORDPRESS_DB_PASSWORD和值(Value)123456,创建的密钥显示在列表中,如下所示:

wordpress-secrets

任务 2:创建存储卷

  1. 点击存储管理下面的存储卷并单击创建

    create-volume

  2. 输入卷的基本信息(例如,将其命名为wordpress-pvc),然后单击下一步

  3. 存储卷设置,需要选择一个可用的存储类型,并设置访问模式存储卷容量。您可以直接使用默认值,如下所示,单击下一步继续。

    volume-settings

  4. 对于高级设置,不需要为当前操作设置额外的配置,单击创建即可完成。

任务 3:创建应用程序

添加 MySQL 后端组件

  1. 导航到应用负载下的应用,选择自制应用然后单击构建自制应用

    add-mysql-backend-component

  2. 输入基本信息(例如在应用程序名称中输入wordpress),然后单击下一步

    basic-info

  3. 服务组件中,单击添加服务在应用程序中设置组件。

    add-service

  4. 设置组件的服务类型为有状态服务。

  5. 输入有状态服务的名称(例如 mysql),然后单击下一步

    mysql-name

  6. 容器镜像中,单击添加容器镜像

    container-image

  7. 在镜像搜索框中输入mysql:5.6,单击回车键然后单击使用默认端口。配置还没有设置完成,请您不要点击右下角的按钮。

    container-image-mysql

    备注

    高级设置中,请确保内存限制不小于 1000 Mi,否则 MySQL 可能因内存不足而无法启动。

  8. 向下滚动到环境变量然后单击引用配置文件或密匙。输入名称MYSQL_ROOT_PASSWORD,然后选择资源mysql-secret和前面步骤中创建的密钥MYSQL_ROOT_PASSWORD,完成后单击保存配置,最后单击下一步继续。

    environment-var

  9. 选择挂载存储中的添加存储卷,输入存储卷名称mysql)和存储类型(类型:读写,路径:/var/lib/mysql)的值,如下所示:

    volume-template

    完成后单击保存设置并单击下一步继续。

  10. 高级设置中,不需要设置,您可以直接点击添加,也可以根据需要选择其他选项。

    advanced-setting

  11. 现在,您添加了 MySQL 组件,如下所示:

    mysql-done

添加 WordPress 前端组件

  1. 点击添加服务选择无状态服务输入名称wordpress然后单击下一步

    add-wordPress-frontend-component

  2. 与上述步骤类似,单击添加容器镜像,在搜索框中输入wordpress:4.8-apache镜像,按回车,然后单击使用默认端口

    container-image-wordpress

  3. 向下滚动到环境变量然后单击引用配置文件或密匙,这里需要添加两个环境变量。根据下面的屏幕截图输入值。

    • 对于WORDPRESS_DB_PASSWORD,请选择在任务 1 中创建的wordpress-secretWORDPRESS_DB_PASSWORD
    • 单击添加环境变量,输入WORDPRESS_DB_HOSTmysql作为作为键(Key)和值(Value)。

    警告

    对于此处添加的第二个环境变量,该值必须与步骤 5 中创建 MySQL 有状态服务设置的名称完全相同。否则,WordPress 将无法连接到 MySQL 对应的数据库。

    environment-varss

    单击保存配置,单击下一步继续。

  4. 挂载存储设置中,单击添加存储卷然后单击选择已有存储卷

    volume-template-wordpress

    choose-existing

  5. 选择上一步创建的wordpress-pvc,将模式设置为读写,并输入装载路径/var/www/html。单击保存并单击下一步继续。

    choose-existing-volume

  6. 高级设置中,您可以直接点击添加创建服务,也可以根据需要选择其他选项。

    advanced-settings-wordpress

  7. 现在也设置了前端组件,单击下一步继续。

    two-components-done

  8. 您可以在这里设置路由规则(入口),也可以直接单击创建来创建应用程序。

    ingress

  9. 创建后,应用程序将显示在下面的列表中。

    create

任务 4:验证资源

工作负载中,分别检查部署有状态副本集中的wordpress-v1mysql-v1的状态。如果他们运行如下图所示,这意味着 WordPress 已经成功创建。

wordpress-deployment

wordpress-statefulset

任务 5:通过 NodePort 访问 WordPress

  1. 要访问集群外的服务,请首先导航到服务,单击wordpress右侧的三个点后选择编辑外网访问

    edit-internet-access

  2. 访问方式中选择NodePort,然后单击确定

    access-method

  3. 单击服务进入详情页可以看到暴露的端口。

    nodeport-number

  4. 通过{Node IP}:{NodePort}访问此应用程序,可以看到下图:

    wordpress

    备注

    在访问服务之前,请确保安全组中的端口已打开。