通过Helm CLI一键部署WordPress

本文介绍如何通过Helm CLI部署WordPress应用。

前提条件

部署WordPress

  1. 执行以下命令,配置aliyunhub Repo。

    helm repo add aliyunhub https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/

    预期输出:

    "aliyunhub" has been added to your repositories
  2. 执行以下命令,查询WordPress Chart。

    helm search repo aliyunhub | grep wordpress

    预期输出:

    aliyunhub/ack-wordpress-sample      9.4.0      5.4.2      Web publishing platform for building blogs and ...
  3. 执行以下命令部署WordPress。

    helm install wordpress aliyunhub/ack-wordpress-sample \
        --set mariadb.master.persistence.enabled=true \
        --set mariadb.master.persistence.storageClass=alicloud-disk-topology-alltype \
        --set mariadb.master.persistence.size=20Gi \
        --set persistence.enabled=false
    说明
    • 为了实现数据的持久化,MariaDB使用持久化存储卷保存数据。

    • 持久化存储选用阿里云SSD云盘,大小为20 GiB,并通过配置StorageClassName自动化创建。

    • WordPress不需要进行数据持久化,数据卷persistence.enabled可配置为false。

    输出结果如下,表示WordPress已部署完成。

    NAME: wordpress
    LAST DEPLOYED: ********
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    NOTES:
    ** Please be patient while the chart is being deployed **
    
    Your WordPress site can be accessed through the following DNS name from within your cluster:
    
        wordpress-ack-wordpress-sample.default.svc.cluster.local (port 80)
    
    To access your WordPress site from outside the cluster follow the steps below:
    
    1. Get the WordPress URL by running these commands:
    
      NOTE: It may take a few minutes for the LoadBalancer IP to be available.
            Watch the status with: 'kubectl get svc --namespace default -w wordpress-ack-wordpress-sample'
    
       export SERVICE_IP=$(kubectl get svc --namespace default wordpress-ack-wordpress-sample --template "{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}")
       echo "WordPress URL: http://$SERVICE_IP/"
       echo "WordPress Admin URL: http://$SERVICE_IP/admin"
    
    2. Open a browser and access WordPress using the obtained URL.
    
    3. Login with the following credentials below to see your blog:
    
      echo Username: user
      echo Password: $(kubectl get secret --namespace default wordpress-ack-wordpress-sample -o jsonpath="{.data.wordpress-password}" | base64 --decode)
    重要
    • 输出结果中提供了查看WordPress Service IP地址与user账户密码的命令。由于示例中所使用的WordPress版本原因,这些命令的输出可能不符合预期。

  4. 执行以下命令,查看WordPress所属的Pod是否正常运行。

    kubectl get pod | grep wordpress

    输出如下,说明Pod已处于running状态。

    wordpress-ack-wordpress-sample-**********-*****   1/1     Running   0          109s
    wordpress-mariadb-0                               1/1     Running   0          109s

登录WordPress

  1. 执行以下命令,查看WordPress的IP地址。

    kubectl get svc --namespace default wordpress-ack-wordpress-sample --template '{{range .status.loadBalancer.ingress}}{{.ip}}{{ "\n" }}{{end}}'

    预期输出:

    106.14.***.***
  2. 执行以下命令获取user账户的访问密码。

    kubectl get secret --namespace default wordpress-ack-wordpress-sample -o jsonpath="{.data.wordpress-password}" | base64 -d | { cat; printf "\n"; }
  3. 在浏览器中使用步骤1中得到的IP地址,以<IP地址>/login为格式访问WordPress。然后使用用户名和密码登录。

    image

(可选)删除应用

您可执行以下命令,删除已部署的WordPress。

helm delete wordpress

预期输出:

release "wordpress" uninstalled