Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Cloud Container Engine/ Primeiros passos/ Implementação de WordPress usando o Helm
Atualizado em 2023-11-13 GMT+08:00

Implementação de WordPress usando o Helm

O Helm é um gerenciador de pacotes que simplifica a implementação, atualização e gerenciamento de aplicações de Kubernetes. Helm usa charts (gráficos, um formato de empacotamento que define os recursos do Kubernetes) para encapsular todos os elementos implantados pelo Kubernetes, incluindo código de aplicação, dependências, arquivos de configuração e instruções de implementação. Com o Helm, você pode implementar e gerenciar facilmente aplicações complexas do Kubernetes, simplificando o desenvolvimento e a implementação de aplicações.

Esta seção descreve como implementar a carga de trabalho do WordPress usando Helm.

Pré-requisitos

Você criou um cluster do CCE que contém um nó com 4 vCPUs e 8 GiB de memória. O nó tem um EIP para puxar a imagem do WordPress de um repositório externo. Para obter detalhes sobre como criar um cluster, consulte Criação um cluster do Kubernetes.

Preparações

  1. Faça download e configure o kubectl para se conectar ao cluster.

    Efetue logon no console do CCE e clique no nome do cluster de destino. Na área Connection Information da página Cluster Information, clique em Configure ao lado de kubectl e configure o kubectl conforme as instruções.

    Figura 1 kubectl
  2. Instale Helm 3.

Implementação de WordPress

  1. Adicione o repositório oficial de WordPress.

    helm repo add bitnami https://charts.bitnami.com/bitnami

  2. Execute os seguintes comandos para criar uma carga de trabalho de WordPress:

    helm install myblog bitnami/wordpress \
        --set mariadb.primary.persistence.enabled=true \
        --set mariadb.primary.persistence.storageClass=csi-disk \
        --set mariadb.primary.persistence.size=10Gi \
        --set persistence.enabled=false
    • mariadb usa um volume persistente (PV) para armazenar dados. O PV é criado automaticamente com um disco EVS de 10 GiB configurando StorageClassName.
    • A persistência de dados não é necessária para WordPress. Defina persistence.enabled como false para o volume de dados.

    Informação semelhante à seguinte foi exibida:

    coalesce.go:223: warning: destination for mariadb.networkPolicy.egressRules.customRules is a table. Ignoring non-table value ([])
    NAME: myblog
    LAST DEPLOYED: Mon Mar 27 11:47:58 2023
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    CHART NAME: wordpress
    CHART VERSION: 15.2.57
    APP VERSION: 6.1.1
    
    ** Please be patient while the chart is being deployed **
    
    Your WordPress site can be accessed through the following DNS name from within your cluster:
    
        myblog-wordpress.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 myblog-wordpress'
    
       export SERVICE_IP=$(kubectl get svc --namespace default myblog-wordpress --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 myblog-wordpress -o jsonpath="{.data.wordpress-password}" | base64 -d)

    A saída do comando mostra como obter o URL de WordPress e o nome de usuário e senha para fazer logon no plano de fundo de WordPress.

Acessar WordPress

  1. Modifique a configuração do Serviço de WordPress.

    É necessária uma configuração de anotação adicional para usar um Serviço de LoadBalancer no CCE. No entanto, bitnami/wordpress não tem essa configuração. Você precisa modificar manualmente a configuração.

    kubectl edit svc myblog-wordpress

    Adicione kubernetes.io/elb.autocreate e kubernetes.io/elb.class a metadata.annotations e salve a modificação. As duas anotações são usadas para criar um balanceador de carga compartilhado para que a carga de trabalho de WordPress possa ser acessada por meio do EIP do balanceador de carga.

    apiVersion: v1
    kind: Service
    metadata:
      name: myblog-wordpress
      namespace: default
      annotations:
        kubernetes.io/elb.autocreate: '{ "type": "public", "bandwidth_name": "myblog-wordpress", "bandwidth_chargemode": "bandwidth", "bandwidth_size": 5, "bandwidth_sharetype": "PER", "eip_type": "5_bgp" }'
        kubernetes.io/elb.class: union
    spec:
      ports:
        - name: http
    ...

  2. Obtenha o endereço IP do balanceador de carga de rede público do Serviço myblog-wordpress e acesse-o.

    Na guia Services, localize myblog-wordpress e localize o endereço IP do balanceador de carga de rede público.

    Na caixa endereço de um navegador, digite <Public IP address of the load balancer>:80 para acessar WordPress.

    Na caixa endereço de um navegador, digite <Public IP address of the load balancer>:80/login para acessar o plano de fundo de WordPress como usuário user. Execute o seguinte comando para obter a senha do user:

    kubectl get secret --namespace default myblog-wordpress -o jsonpath="{.data.wordpress-password}" | base64 -d

Excluir a sarga de trabalho de WordPress

  1. Execute o seguinte comando para excluir a carga de trabalho de WordPress:

    helm delete myblog

    Informação semelhante à seguinte foi exibida:
    release "myblog" uninstalled

  2. Exclua PersistentVolumeClaim (PVC) usado pelo componente mariadb em WordPress.

    kubectl delete pvc data-myblog-mariadb-0

    Informação semelhante à seguinte foi exibida:
    persistentvolumeclaim "data-myblog-mariadb-0" deleted