Fastapi框架+KubeSphere3.1.1系列(3): kubesphere安装部署WordPress应用示例实践

626 阅读7分钟

说明

操作文档来自:kubesphere.com.cn/docs/quick-…

WordPress(使用 PHP 语言编写)是免费、开源的内容管理系统,用户可以使用 WordPress 搭建自己的网站。完整的 WordPress 应用程序包括以下 Kubernetes 对象,由 MySQL 作为后端数据库。

实践结果

在 KubeSphere 中创建应用程序(以 WordPress 为例)并在集群外进行访问。

WordPress

ps: 上面的图示中:

1:pvc是指存储卷请求,通常比如我们的数据库的产生的文件,数据记录都是需要持久化存储的,所以需要一个PVC来请求处理存储。 使用了PVC,当Pod从其他节点恢复的时候则可以继续访问原来的数据。

2:secret主要是存贮敏感信息秘钥数据

准备工作

您需要准备一个 project regular 帐户,并在一个项目中赋予该帐户 operator 角色(该用户已被邀请参加该项目) 这个操作上一步中已经操作了!

动手实验

步骤 1:创建密钥

秘钥主要作用是:避免明文密码的传输!

  • 创建 MySQL 密钥

      说明:这里的秘钥其实主要是为避免明文的在容器里面写我们的相关信息,
      而关联的,但是这里创建秘钥之后,
      后面还是会需要在我们的容器内部通过环境变量的方式进行秘钥的关联。
      这里仅仅是作为一个存贮的。
    
      这里的秘钥可以理解的k8s中的 secret
    

    这个秘钥应用场景:

    关联到后续我们的 MySQL Pod 模板中的环境变量 WORDPRESS_DB_PASSWORD 是连接到 WordPress 数据库的密码,

      1. 使用 project-regular 帐户登录 KubeSphere 控制台,访问 demo-project 的详情页并导航到配置中心。在密钥中,点击右侧的创建

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

秘钥类型有很多种,后续还有其他,可以再这里进行配置!

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

步骤 2:创建wordpress-pvc存储卷(mysql可以后面再创建匹配关联)

PS:关于存储卷主要是给我们的数据库的数据配置存贮文件,和WordPress一些静态文件等

关于PVC持久化存贮请求,和PV的区别是:pv是一个网络存贮卷,PVC是持久化存贮请求

  • 1.访问存储管理下的存储卷,点击创建。

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

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

  • 4.对于高级设置,您无需为当前步骤添加额外的配置,点击创建完成即可。

关于券的状态:显示等待中,因为目前还没有相关的请求进行关联,所以是处于等待中!

步骤 3:创建应用程序

PS:一个应用是已组件的方式组成的,我们可以理解和一点docker-compose编排容器一样。 所以我们的应用可以是理解数据库是一个组件,应用是一个组件。

添加 MySQL 后端组件

  • 1、导航到应用负载下的应用,选择自制应用,再点击构建自制应用

  • 2、输入基本信息(例如,在应用名称一栏输入 wordpress),然后点击下一步。

  • 3、在服务组件中,点击添加服务以在应用中设置组件。

  • 4、设置组件的服务类型为有状态服务

  • 5、输入有状态服务的名称(例如 mysql)并点击下一步。

  • 6、在容器镜像中,点击添加容器镜像。

  • 7、在搜索框中输入 mysql:5.6,按下回车键,然后点击使用默认端口。由于配置还未设置完成,请不要点击右下角的 √ 按钮。

备注

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

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

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

image.png

完成后,点击 √ 保存设置并点击下一步继续。

  • 10、在高级设置中,可以直接点击添加,也可以按需选择其他选项。

  • 11、MySQL 组件已经添加完成,如下所示:

添加 WordPress 前端组件

  • 12、再次点击添加服务,这一次选择无状态服务。输入名称 wordpress 并点击下一步。

  • 13、与上述步骤类似,点击添加容器镜像,在搜索栏中输入 wordpress:4.8-apache 并按下回车键,然后点击使用默认端口。

  • 14、向下滚动到环境变量,点击引用配置文件或密钥。这里需要添加两个环境变量,请根据以下截图输入值:

    • 对于 WORDPRESS_DB_PASSWORD,请选择在步骤 1 中创建的 wordpress-secret 和 WORDPRESS_DB_PASSWORD。
    • 点击添加环境变量,分别输入 WORDPRESS_DB_HOST 和 mysql 作为键 (Key) 和值 (Value)。

点击 √ 保存配置,再点击下一步继续。

  • 15、在挂载存储中,点击添加存储卷,并选择已有存储卷

  • 16 、选择上一次创建的 wordpress-pvc,将模式设置为读写,并输入挂载路径 /var/www/html。点击 √ 保存,再点击下一步继续。

  • 17 、在高级设置中,可以直接点击添加创建服务,也可以按需选择其他选项。

  • 18 、现在,前端组件也已设置完成。点击下一步继续。

  • 19、您可以在这里设置路由规则(应用路由 Ingress),也可以直接点击创建。

  • 20、创建后,应用将显示在下面的列表中。

步骤 4:验证资源

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

查看容器情况:

查看容器日志:

等待容器创建:

步骤 5:通过 NodePort 进行外网访问 WordPress

  • 1、若要在集群外访问服务,请首先导航到服务。点击 wordpress 右侧的三个点后,选择编辑外网访问,访问方式中选择 NodePort,然后点击确定。

  • 2、点击服务进入详情页,可以看到暴露的端口。

查看容器日志:

查看POD调度情况:

查看Pod被调度那个节点上运行:

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

然后访问:http://192.168.219.143:31335

PS:在创建的过程遇到了一个,我们的WordPress

实践思路总结

创建一个应用我的流程其实大概分几个思路点:

  • 1: 首先是创建应用可能需要配置的秘钥信息(属于私密的信息)

  • 2: 可以配置相关服务的配置项,配置文件

  • 3:创建应用(应用是由一个一个的组件生成的)对应的PV(存储卷)和PVC(存储卷请求)

  • 4:创建对应的服务镜像,指定服务的是有状态服务还是无状态服务

  • 5:创建的过程关联或挂载已创建的PV(存储卷)和PVC(存储卷请求)

  • 6:根据实际情况开放外网访问对应的无状态服务。

个人其他博客地址

简书:www.jianshu.com/u/d6960089b…

掘金:juejin.cn/user/296393…

小钟同学 | 文 【原创】| QQ:308711822

  • 1:本文相关描述主要是个人的认知和见解,如有不当之处,还望各位大佬指正。
  • 2:关于文章内容,有部分内容参考自互联网整理,如有链接会声明标注;如没有及时标注备注的链接的,如有侵权请联系,我会立即删除处理哟。