一、基于 Helm 部署 WordPress¶
1.1 方式一:通过 values.yaml 安装¶
1、添加WordPress chart仓库
执行以下命令添加WordPress chart仓库
[root@master01 ~]# helm repo add bitnami https://charts.bitnami.com/bitnami
[root@master01 ~]# helm repo update
创建一个名为wordpress的命名空间
[root@master01 ~]# kubectl create namespace wordpress
2、创建values.yaml文件
在本地创建一个values.yaml文件,用于配置WordPress的相关参数。以下是一个示例:
[root@master01 ~]# mkdir -p /root/3/wordpress
[root@master01 ~]# cd /root/3/wordpress
[root@master01 wordpress]# vim values.yaml
# WordPress相关配置
wordpressUsername: admin
wordpressPassword: password
wordpressEmail: admin@example.com
wordpressBlogName: My 123Blog
# Service相关配置
service:
type: NodePort
port: 80
nodePorts:
http: "32088"
# MySQL相关配置
mysql:
image:
repository: bitnami/mysql
tag: 8.0.26-debian-10-r0
pullPolicy: IfNotPresent
user: wordpress
database: wordpress
port: 3306
persistence:
enabled: true
size: 8Gi
storageClass: "nfs-storage"
# WordPress相关配置
wordpress:
image:
repository: bitnami/wordpress
tag: 5.8.1-debian-10-r0
pullPolicy: IfNotPresent
replicaCount: 1
persistence:
enabled: true
size: 8Gi
storageClass: "nfs-storage"
3、安装WordPress
执行以下命令安装WordPress
[root@master01 ~]# cd /root/3/wordpress
[root@master01 wordpress]# helm install my-wordpress bitnami/wordpress -f values.yaml -n wordpress
其中,my-wordpress是安装的WordPress的名称,stable/wordpress是Helm官方提供的WordPress Chart,-f values.yaml指定了使用上一步创建的values.yaml文件,-n wordpress指定了安装的命名空间为wordpress
4、查看安装状态
执行以下命令查看安装状态
#查看pvc
[root@master01 wordpress]# kg pvc -n wordpress
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-my-wordpress-mariadb-0 Bound pvc-be1be1d1-4357-4713-b181-2ff2e1556c28 8Gi RWO nfs-storage 13m
my-wordpress Bound pvc-c9d4755b-c6cb-47da-b6ed-07df4dd1c6cb 10Gi RWO nfs-storage 13m
#查看svc
[root@master01 wordpress]# kg svc -n wordpress
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-wordpress NodePort 10.0.25.215 <none> 80:32088/TCP,443:30050/TCP 4h44m
my-wordpress-mariadb ClusterIP 10.0.8.162 <none> 3306/TCP 4h44m
#查看pod
[root@master01 wordpress]# kgp -n wordpress
NAME READY STATUS RESTARTS AGE
my-wordpress-7cf6bc5657-ll2r6 1/1 Running 45 (11m ago) 4h42m
my-wordpress-mariadb-0 1/1 Running 0 4h42m
5、如果需要升级WordPress,可以使用以下命令
$ helm upgrade my-wordpress bitnami/wordpress -f values.yaml -n wordpress
如果需要删除WordPress,可以使用以下命令:
$ helm uninstall my-wordpress -n wordpress
6、访问
如果是NodePort,执行如下命令
# 输出WordPress的URL
[root@master01 wordpress]# echo "WordPress URL: http://$(kubectl get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}'):$(kubectl get svc my-wordpress -n wordpress -o jsonpath='{.spec.ports[?(@.port==80)].nodePort}')"
如果是loadBalancer,执行如下命令
# 输出WordPress的URL
echo "WordPress URL: http://$(kubectl get svc my-wordpress -n wordpress -o jsonpath='{.status.loadBalancer.ingress[0].ip}')"