轻松搞定:通过Helm实现MySQL和WordPress的秒级部署

目录

前 言

一、Helm部署单节点MySQL

1.1、部署MySQL-Chart

1.2、查看MySQL运行状态

1.3、测试MySQL连接

二、Helm部署WordPress

2.1、部署WordPress-Chart

2.2、检查WordPress资源运行情况

2.3、测试结果

三、Helm部署主从复制MySQL

3.1、部署MySQL主从Chart

3.2、检查mysql的pod和service

3.2、测试MySQL连接

四、Helm部署WordPress

4.1、部署WordPress-Chart

4.2、检查wordpress的pods

4.3、检查wordpress的ingress

4.4、测试web效果


前 言

前面一篇《在K8S上部署WordPress博客,看这一篇干货就够了》介绍了使用Yaml文件手动部署MySQL的主从复制,使用Containerd结合Buildkitd从构建镜像到部署Deploy手动搭建起了WordPress,操作步骤复杂,从文章《Helm来了还在为写复杂的Yaml文件而烦恼吗》学习了Helm的使用,本文尝试使用Helm简化部署步骤,实现秒级部署。

本文环境继续使用文章《Helm搭桥,一键搞定Harbor部署,告别繁琐步骤》搭建的环境,包含:

两种Ingress-Controller:Cilium-Ingress和Ingress-nginx供选择使用

MetalLB为LoadBalancer类型SVC分配EXTERNAL-IP

两种存储类提供自动置备PV的能力:NFS-CSI和OpenEBS

一、Helm部署单节点MySQL

1.1、部署MySQL-Chart


helm install mysql  \
        --set auth.rootPassword=MageEdu \
        --set primary.persistence.storageClass=nfs-client \
        --set auth.database=wpdb \
        --set auth.username=wpuser \
        --set auth.password='12345Wp' \
        oci://registry-1.docker.io/bitnamicharts/mysql \
        -n blog

部署单节点MySQL时用到了NFS-CSI的存储类nfs-client,这样能自动在外置的NFS-Server上置备PV,并自动绑定MySQL的PVC,PVC的一些参数设置详见MySQL-Chart

如下截图:

这里只指定了存储类nfs-client,其他参数使用默认值

1.2、查看MySQL运行状态

~$ kubectl get all -n blog

1.3、测试MySQL连接

这时可以运行一个mysql客户端容器,测试MySQL是否可正常访问

~$ kubectl run mysql-client --rm -it --restart='Never' --image docker.io/bitnami/mysql:8.4.2-debian-12-r2 --namespace blog --command -- bash

二、Helm部署WordPress

2.1、部署WordPress-Chart


helm install wordpress \
        --set mariadb.enabled=false \
        --set externalDatabase.host=mysql.blog.svc.cluster.local \
        --set externalDatabase.user=wpuser \
        --set externalDatabase.password='12345Wp' \
        --set externalDatabase.database=wpdb \
        --set externalDatabase.port=3306 \
        --set persistence.storageClass=nfs-client \
        --set wordpressUsername=admin \
        --set wordpressPassword='WordPress12345' \
        oci://registry-1.docker.io/bitnamicharts/wordpress \
        -n blog --create-namespace

部署WordPress时指定连接mysql的SVC,使用nfs-client存储类自动创建WordPress使用的PV,并自动绑定PVC

2.2、检查WordPress资源运行情况

~$ kubectl get pods -n blog
~$ kubectl get svc -n blog
~$ kubectl get pvc -n blog

2.3、测试结果

三、Helm部署主从复制MySQL

3.1、部署MySQL主从Chart


helm install mysql  \
        --set auth.rootPassword=123456@24 \
        --set global.storageClass=nfs-client \
        --set architecture=replication \
        --set auth.database=wpdb \
        --set auth.username=wpuser \
        --set auth.password='12345Wp' \
        --set secondary.replicaCount=1 \
        --set auth.replicationPassword='replpass' \
        oci://registry-1.docker.io/bitnamicharts/mysql \
        -n blog --create-namespace

architecture=replication表示部署的MySQL是主从复制模式

secondary.replicaCount=1 表示部署一个从节点

auth.replicationPassword='replpass' 主从复制模式使用的用户密码

其他参数设置请参考MySQL-Chart

3.2、检查mysql的pod和service

~$ kubectl get pods -n blog
~$ kubectl get svc -n blog

3.2、测试MySQL连接

kubectl run mysql-client --rm -it --restart='Never' --image docker.io/bitnami/mysql:8.4.2-debian-12-r2 --namespace blog --command -- bash

四、Helm部署WordPress

4.1、部署WordPress-Chart

helm upgrade wordpress \
            --set mariadb.enabled=false \
            --set externalDatabase.host=mysql-primary.blog.svc.cluster.local \
            --set externalDatabase.user=wpuser \
            --set externalDatabase.password='12345Wp' \
            --set externalDatabase.database=wpdb \
            --set externalDatabase.port=3306 \
            --set persistence.storageClass=nfs-client \
            --set ingress.enabled=true \
            --set ingress.tls=true \
            --set ingress.tlsWwwPrefix=true \
            --set ingress.selfSigned=true \
            --set ingress.ingressClassName=cilium \
            --set ingress.hostname=blog.jnlikai.cc \
            --set ingress.pathType=Prefix \
            --set wordpressUsername=admin \
            --set wordpressPassword='WordPress12345' \
            oci://registry-1.docker.io/bitnamicharts/wordpress \
            -n blog --create-namespace

部署WordPress连接主从复制的MySQL时,指定连接mysql-primary主节点,指定使用cilium的ingress,指定wordpress的域名,指定wordpress的登录用户密码等参数

4.2、检查wordpress的pods

4.3、检查wordpress的ingress

4.4、测试web效果


欢迎关注作者的公众号,公众号每天分享运维干货文章

  • 15
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Helm部署WordPress,你可以按照以下步骤进行操作: 1. 首先,确保已经安装了Helm。你可以通过运行以下命令来验证Helm的安装情况: ``` helm version ``` 确保能够正确显示Helm的版本信息。 2. 下载WordPress的Helm chart。你可以使用以下命令来下载: ``` helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update ``` 3. 创建一个命名空间来部署WordPress: ``` kubectl create namespace wordpress ``` 4. 使用以下命令部署WordPress: ``` helm install wordpress bitnami/wordpress --namespace wordpress --set mariadb.master.persistence.enabled=true --set mariadb.master.persistence.storageClass=nfs-client --set persistence.storageClass=nfs-client ``` 在上述命令中,我们指定了命名空间为`wordpress`,并且启用了持久化存储,并设置了存储类型为`nfs-client`。你可以根据自己的需求进行调整。 5. 等待部署完成后,你可以使用以下命令获取WordPress的访问地址: ``` kubectl get svc -n wordpress ``` 在输出结果中,你将看到WordPress的服务IP和端口号。你可以使用该地址在浏览器中访问WordPress。 通过以上步骤,你可以使用Helm轻松部署WordPress应用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [helm部署Wordpress](https://blog.csdn.net/weixin_43616190/article/details/126380008)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [基于 Helm 快速部署 Wordpress](https://blog.csdn.net/weixin_47371144/article/details/121743554)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值