• 地址:广州市天河区华南植物园-龙洞慧创百思G220
  • 免费热线 : 020-87581205
  • 电子邮箱 : sw@51mimu.com

部署有依赖关系的wordpress应用_基础入门_快速入门_容器服务Kubernetes版-阿里云

 知识中心     |      2020-05-13 12:07:20

部署有依赖关系的wordpress应用

更新时间:2020-01-15 19:50:05

编辑 我的收藏

新浪微博 微信 钉钉

本页目录

本文主要为您介绍如何部署有依赖关系的wordpress应用。

前提条件

背景信息

本例主要演示如何通过编排模板中的自定义模板创建有依赖关系的应用。

主要组件有:

  • wordpress
  • mysql

涉及到的资源:

  • 存储卷管理
  • secret管理
  • 服务

操作步骤

  1. 登录容器服务管理控制台
  2. 使用准备好的存储卷声明。在这里创建wordpress-pvc和wordpress-mysql-pvc两个存储声明,分别在wordpress和wordpress-mysql的yaml文件中,用这两个声明挂载相应的存储卷。
  3. 单击左侧导航栏中应用配置 > 保密字典,选择所需的集群和命名空间,单击右上角创建。创建过程请参考创建密钥

    创建密钥

    由于创建和访问mysql数据库需要用户名密码,所以我们通过创建密钥的方式进行用户名密码的管理。

    在使用secret前,您需要先将需要加密的secret在保密字典里进行创建,在本例中通过将mysql root的密码作为密钥进行创建,创建名称为mysql-pass,类型选择Opaque。该密钥会在后面的wordpress和wordpress-mysql的yaml文件中用到。

    配置密钥页面

  4. 单击左侧导航栏中的应用 > 无状态,单击右上角使用模板创建

    创建应用

    选择所需的集群和命名空间,创建wordpress deployment的yaml文件如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: wordpress
      labels:
        app: wordpress
    spec:
      selector:
        matchLabels:
          app: wordpress
          tier: frontend
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            app: wordpress
            tier: frontend
        spec:
          containers:
          - image: wordpress:4
            name: wordpress
            env:
            - name: WORDPRESS_DB_HOST
              value: wordpress-mysql  #通过名称指向需要访问的mysql,该名称与mysql service的名称相对应。
            - name: WORDPRESS_DB_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql-pass
                  key: password-wordpress
            ports:
            - containerPort: 80
              name: wordpress
            volumeMounts:
            - name: wordpress-pvc
              mountPath: /var/www/html
          volumes:
          - name: wordpress-pvc
            persistentVolumeClaim:
              claimName: wordpress-pv-claim

    创建mysql deployment的yaml文件如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: wordpress-mysql
      labels:
        app: wordpress
    spec:
      selector:
        matchLabels:
          app: wordpress
          tier: mysql
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            app: wordpress
            tier: mysql
        spec:
          containers:
          - image: mysql:5.6
            name: mysql
            env:
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql-pass
                  key: password-mysql
            ports:
            - containerPort: 3306
              name: mysql
            volumeMounts:
            - name: wordpress-mysql-pvc
              mountPath: /var/lib/mysql
          volumes:
          - name: wordpress-mysql-pvc
            persistentVolumeClaim:
              claimName: wordpress-mysql-pv-claim

  5. 为了使wordpress能够被外部访问,我们需要为wordpress创建service对外暴露访问方式,在这里使用LoadBalancer类型进行wordpress service的创建,容器服务会自动创建阿里云负载均衡,为用户提供外部访问。

    wordpress mysql需要创建名为wordpress-mysql的service,以使在上面创建的wordpress deploymet可以访问到。由于该mysql只为wordpress内部调用,所以不需要为其创建LoadBalancer类型的service。

    创建service的方法请参考创建服务

    创建wordpress和mysql service的yaml文件如下:

    apiVersion: v1
    kind: Service
    metadata:
      name: wordpress
      labels:
        app: wordpress
    spec:
      ports:
        - port: 80
      selector:
        app: wordpress
        tier: frontend
      type: LoadBalancer
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: wordpress-mysql
      labels:
        app: wordpress
    spec:
      ports:
        - port: 3306
      selector:
        app: wordpress
        tier: mysql
      clusterIP: None

  6. 当部署完成后,单击左侧导航栏中的路由与负载均衡 > 服务,找到wordpress服务并查看其外端端点。

    服务列表

  7. 在浏览器中输入XX.XX.XX.XX/wp-admin/install.php,访问wordpress服务的外部端点,您就可以通过负载均衡提供的IP地址进行wordpress应用的访问。

    此处的XX.XX.XX.XX为上步骤获取的外部端点的IP地址。

    访问外部端点

后续步骤

在wordpress应用的配置过程中,您可以使用密钥中配置的密码登录应用,此外,wordpress应用所属的容器产生的数据会保存数据卷中。

上一篇:镜像创建有状态 StatefulSet 应用

下一篇:基于Java应用的DevOps示例

相关文档

相关产品

  • 容器服务Kubernetes版

    容器服务Kubernetes版(Container Service for Kubernetes)提供高性能可伸缩的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理。

  • 容器服务(已停止服务)

    容器服务(Container Service)提供了高性能可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大地简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力,打造 Docker 云端最优化的运行环境。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。

  • 容器镜像服务

    容器镜像服务(Container Registry)提供安全的应用镜像托管能力,精确的镜像安全扫描功能,稳定的国内外镜像构建服务,便捷的镜像授权功能,方便用户进行镜像全生命周期管理。容器镜像服务简化了Registry的搭建运维工作,支持多地域的镜像托管,并联合容器服务等云产品,打造云上使用Docker的一体化体验。

以上内容是否对您有帮助?

在文档使用中是否遇到以下问题

  • 内容错误

  • 更新不及时

  • 链接错误

  • 缺少代码/图片示例

  • 太简单/步骤待完善

  • 其他

  • 内容错误

  • 更新不及时

  • 链接错误

  • 缺少代码/图片示例

  • 太简单/步骤待完善

  • 其他

更多建议

匿名提交

感谢您的打分,是否有意见建议想告诉我们?

感谢您的反馈,反馈我们已经收到

文档反馈


COPYRIGHT © 2018-2019,WWW.51MIMU.COM,ALL RIGHTS RESERVED版权所有 © 广州米姆信息科技有限公司(阿里云、腾讯云代理商) 粤ICP备18145377号

sitemap feed