一、準(zhǔn)備工作
在阿里云容器服務(wù)Kubernetes版(ACK)上部署WordPress前,需要完成以下準(zhǔn)備工作:
- 阿里云賬號(hào)注冊(cè)與實(shí)名認(rèn)證:確保擁有有效的阿里云賬號(hào)并完成實(shí)名認(rèn)證
- 開通ACK服務(wù):在阿里云控制臺(tái)中開通容器服務(wù)Kubernetes版
- 資源規(guī)劃:
- 選擇合適的地域和可用區(qū)
- 確定集群規(guī)格(建議至少2核4GB)
- 準(zhǔn)備持久化存儲(chǔ)方案(如NAS或云盤)
- 網(wǎng)絡(luò)配置:
- 創(chuàng)建專有網(wǎng)絡(luò)VPC和虛擬交換機(jī)
- 配置安全組規(guī)則(開放80/443端口)
二、創(chuàng)建ACK集群
- 登錄阿里云控制臺(tái),進(jìn)入”容器服務(wù)Kubernetes版”
- 點(diǎn)擊”創(chuàng)建集群”,選擇”專有版”或”托管版”(新手建議托管版)
- 配置集群基本信息:
- 集群名稱(如wordpress-cluster)
- Kubernetes版本(建議選擇穩(wěn)定版本)
- 節(jié)點(diǎn)規(guī)格(建議2核4GB或更高)
- 節(jié)點(diǎn)數(shù)量(生產(chǎn)環(huán)境至少3個(gè))
- 配置網(wǎng)絡(luò)和存儲(chǔ):
- 選擇已創(chuàng)建的VPC和虛擬交換機(jī)
- 配置節(jié)點(diǎn)登錄方式(密碼或密鑰對(duì))
- 確認(rèn)配置無誤后,點(diǎn)擊”創(chuàng)建集群”,等待約10-15分鐘完成部署
三、部署WordPress應(yīng)用
方法一:通過應(yīng)用目錄部署
- 在ACK控制臺(tái)左側(cè)導(dǎo)航欄選擇”應(yīng)用目錄”
- 搜索”WordPress”并點(diǎn)擊進(jìn)入應(yīng)用詳情頁
- 點(diǎn)擊”創(chuàng)建”按鈕,進(jìn)入?yún)?shù)配置頁面
- 關(guān)鍵參數(shù)配置:
- WordPress配置:
- wordpressUsername: 管理員用戶名(默認(rèn)admin)
- wordpressPassword: 設(shè)置強(qiáng)密碼
- wordpressEmail: 管理員郵箱
- 數(shù)據(jù)庫配置:
- mariadb.enabled: 是否啟用內(nèi)置MariaDB(測(cè)試環(huán)境可啟用)
- externalDatabase: 生產(chǎn)環(huán)境建議使用阿里云RDS
- 持久化存儲(chǔ):
- persistence.enabled: 務(wù)必設(shè)置為true
- 選擇已有的StorageClass或創(chuàng)建新的
- 點(diǎn)擊”創(chuàng)建”按鈕,等待部署完成(約3-5分鐘)
方法二:通過YAML文件部署
- 準(zhǔn)備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
- 準(zhǔn)備數(shù)據(jù)庫部署文件(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應(yīng)用配置:
kubectl apply -f wordpress-deployment.yaml
kubectl apply -f mariadb-deployment.yaml
四、配置服務(wù)暴露
- 創(chuàng)建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
- 應(yīng)用Service配置:
kubectl apply -f wordpress-service.yaml
- 獲取外部訪問地址:
kubectl get svc wordpress-service
- 在阿里云控制臺(tái)配置SLB(如果需要HTTPS,可配置證書)
五、初始化WordPress
- 通過瀏覽器訪問獲取到的外部IP或域名
- 按照WordPress安裝向?qū)瓿沙跏蓟O(shè)置:
- 選擇語言(中文)
- 配置站點(diǎn)標(biāo)題、管理員賬號(hào)等信息
- 登錄WordPress后臺(tái),開始定制您的網(wǎng)站
六、運(yùn)維與優(yōu)化建議
- 監(jiān)控與日志:
- 啟用阿里云ARMS應(yīng)用實(shí)時(shí)監(jiān)控
- 配置日志服務(wù)SLS收集容器日志
- 備份策略:
- 定期備份WordPress文件和數(shù)據(jù)庫
- 使用阿里云快照服務(wù)備份持久化卷
- 性能優(yōu)化:
- 配置Redis緩存提高訪問速度
- 使用CDN加速靜態(tài)資源
- 調(diào)整Pod資源限制(Requests/Limits)
- 安全加固:
- 定期更新WordPress核心和插件
- 配置WAF防護(hù)Web攻擊
- 限制管理后臺(tái)訪問IP
常見問題解決
- 無法訪問WordPress:
- 檢查Service的externalIP是否分配
- 驗(yàn)證安全組規(guī)則是否開放80端口
- 查看Pod日志(kubectl logs
)
- 數(shù)據(jù)庫連接失敗:
- 確認(rèn)數(shù)據(jù)庫服務(wù)正常運(yùn)行
- 檢查環(huán)境變量配置是否正確
- 驗(yàn)證網(wǎng)絡(luò)策略是否允許Pod間通信
- 持久化存儲(chǔ)問題:
- 確認(rèn)PVC已綁定PV
- 檢查StorageClass配置是否正確
- 驗(yàn)證NAS或云盤掛載權(quán)限
通過以上步驟,您已成功在阿里云ACK上部署了WordPress應(yīng)用。ACK的彈性伸縮和自動(dòng)化管理能力將幫助您輕松應(yīng)對(duì)流量波動(dòng),確保WordPress站點(diǎn)穩(wěn)定運(yùn)行。