一、准备工作
在阿里云容器服务Kubernetes版(ACK)上部署WordPress前,需要完成以下准备工作:
- 阿里云账号注册与实名认证:确保拥有有效的阿里云账号并完成实名认证
- 开通ACK服务:在阿里云控制台中开通容器服务Kubernetes版
- 资源规划:
- 选择合适的地域和可用区
- 确定集群规格(建议至少2核4GB)
- 准备持久化存储方案(如NAS或云盘)
- 网络配置:
- 创建专有网络VPC和虚拟交换机
- 配置安全组规则(开放80/443端口)
二、创建ACK集群
- 登录阿里云控制台,进入”容器服务Kubernetes版”
- 点击”创建集群”,选择”专有版”或”托管版”(新手建议托管版)
- 配置集群基本信息:
- 集群名称(如wordpress-cluster)
- Kubernetes版本(建议选择稳定版本)
- 节点规格(建议2核4GB或更高)
- 节点数量(生产环境至少3个)
- 配置网络和存储:
- 选择已创建的VPC和虚拟交换机
- 配置节点登录方式(密码或密钥对)
- 确认配置无误后,点击”创建集群”,等待约10-15分钟完成部署
三、部署WordPress应用
方法一:通过应用目录部署
- 在ACK控制台左侧导航栏选择”应用目录”
- 搜索”WordPress”并点击进入应用详情页
- 点击”创建”按钮,进入参数配置页面
- 关键参数配置:
- WordPress配置:
- wordpressUsername: 管理员用户名(默认admin)
- wordpressPassword: 设置强密码
- wordpressEmail: 管理员邮箱
- 数据库配置:
- mariadb.enabled: 是否启用内置MariaDB(测试环境可启用)
- externalDatabase: 生产环境建议使用阿里云RDS
- 持久化存储:
- persistence.enabled: 务必设置为true
- 选择已有的StorageClass或创建新的
- 点击”创建”按钮,等待部署完成(约3-5分钟)
方法二:通过YAML文件部署
- 准备WordPress部署文件(wordpress-deployment.yaml):
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
spec:
replicas: 2
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress
image: wordpress:latest
ports:
- containerPort: 80
env:
- name: WORDPRESS_DB_HOST
value: "mariadb"
- name: WORDPRESS_DB_USER
value: "wordpress"
- name: WORDPRESS_DB_PASSWORD
value: "yourpassword"
volumeMounts:
- name: wordpress-persistent-storage
mountPath: /var/www/html
volumes:
- name: wordpress-persistent-storage
persistentVolumeClaim:
claimName: wordpress-pv-claim
- 准备数据库部署文件(mariadb-deployment.yaml):
apiVersion: apps/v1
kind: Deployment
metadata:
name: mariadb
spec:
selector:
matchLabels:
app: mariadb
template:
metadata:
labels:
app: mariadb
spec:
containers:
- name: mariadb
image: mariadb:10.5
ports:
- containerPort: 3306
env:
- name: MYSQL_ROOT_PASSWORD
value: "rootpassword"
- name: MYSQL_USER
value: "wordpress"
- name: MYSQL_PASSWORD
value: "yourpassword"
- name: MYSQL_DATABASE
value: "wordpress"
volumeMounts:
- name: mariadb-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mariadb-persistent-storage
persistentVolumeClaim:
claimName: mariadb-pv-claim
- 通过kubectl应用配置:
kubectl apply -f wordpress-deployment.yaml
kubectl apply -f mariadb-deployment.yaml
四、配置服务暴露
- 创建Service资源(wordpress-service.yaml):
apiVersion: v1
kind: Service
metadata:
name: wordpress-service
spec:
selector:
app: wordpress
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
- 应用Service配置:
kubectl apply -f wordpress-service.yaml
- 获取外部访问地址:
kubectl get svc wordpress-service
- 在阿里云控制台配置SLB(如果需要HTTPS,可配置证书)
五、初始化WordPress
- 通过浏览器访问获取到的外部IP或域名
- 按照WordPress安装向导完成初始化设置:
- 选择语言(中文)
- 配置站点标题、管理员账号等信息
- 登录WordPress后台,开始定制您的网站
六、运维与优化建议
- 监控与日志:
- 启用阿里云ARMS应用实时监控
- 配置日志服务SLS收集容器日志
- 备份策略:
- 定期备份WordPress文件和数据库
- 使用阿里云快照服务备份持久化卷
- 性能优化:
- 配置Redis缓存提高访问速度
- 使用CDN加速静态资源
- 调整Pod资源限制(Requests/Limits)
- 安全加固:
- 定期更新WordPress核心和插件
- 配置WAF防护Web攻击
- 限制管理后台访问IP
常见问题解决
- 无法访问WordPress:
- 检查Service的externalIP是否分配
- 验证安全组规则是否开放80端口
- 查看Pod日志(kubectl logs
)
- 数据库连接失败:
- 确认数据库服务正常运行
- 检查环境变量配置是否正确
- 验证网络策略是否允许Pod间通信
- 持久化存储问题:
- 确认PVC已绑定PV
- 检查StorageClass配置是否正确
- 验证NAS或云盘挂载权限
通过以上步骤,您已成功在阿里云ACK上部署了WordPress应用。ACK的弹性伸缩和自动化管理能力将帮助您轻松应对流量波动,确保WordPress站点稳定运行。