本文主要为您介绍如何部署有依赖关系的WordPress应用。
背景信息
本例主要演示如何通过编排模板中的自定义模板创建有依赖关系的应用。
操作步骤
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏中,单击配置管理。
- 在配置管理页面单击保密字典页签,然后在保密字典页签右上角,单击创建。
创建过程请参见创建密钥。
使用准备好的存储卷声明。本文创建WordPress-pvc和WordPress-MySQL-pvc两个存储声明,分别在WordPress和WordPress-MySQL的YAML文件中,用这两个声明挂载相应的存储卷。
由于创建和访问MySQL数据库需要用户名密码,所以我们通过创建密钥的方式进行用户名密码的管理。
在使用Secret前,您需要先将需要加密的Secret在保密字典里进行创建,在本例中通过将MySQL root的密码作为密钥进行创建,创建名称为MySQL-pass,类型选择Opaque。该密钥会在后面的WordPress和WordPress-MySQL的YAML文件中用到。
- 在集群管理页左侧导航栏中,单击工作负载。
- 单击无状态页签,然后在无状态页面右上角,单击使用模板创建。
在页面顶端选择所需的命名空间,创建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-mysql
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
- 创建服务。
为了使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
- 当部署完成后,单击集群左侧导航栏中的服务。
找到WordPress服务并查看其外端端点。
- 在浏览器中输入XX.XX.XX.XX/wp-admin/install.php,访问WordPress服务的外部端点,您就可以通过负载均衡提供的IP地址进行WordPress应用的访问。
此处的
XX.XX.XX.XX为上步骤获取的外部端点的IP地址。
后续步骤
在WordPress应用的配置过程中,您可以使用密钥中配置的密码登录应用,此外,WordPress应用所属的容器产生的数据会保存数据卷中。
在文档使用中是否遇到以下问题
更多建议
匿名提交