Voltar ao blog

Configurando o WordPress com MySQL no Kubernetes com Helm

Configurando o WordPress com MySQL no Kubernetes com Helm

Kubernetes é agora a forma padrão de implantar aplicações que são escaláveis e possuem alta disponibilidade. O Kubernetes permite que os desenvolvedores subam e desçam instâncias rapidamente conforme necessário para garantir a entrega contínua de conteúdo. Para saber mais sobre o Kubernetes, siga o nosso guia detalhado Conhecendo o Kubernetes.

Helm é um gerenciador de pacotes muito popular usado para instalar aplicações no Kubernetes. O Helm visa implantar e gerenciar aplicações em clusters Kubernetes e simplificar o processo à medida que avançamos. Ele também fornece acesso a aplicações prontas para uso para o Kubernetes que são empacotadas. Estas são chamadas de Charts. Estar familiarizado com o Kubernetes e o Helm é uma adição importante ao arsenal de qualquer especialista em DevOps.

WordPress é um dos sistemas de gerenciamento de conteúdo (CMS) mais populares. Combiná-lo com o banco de dados MySQL resulta em aplicações web de alto desempenho e altamente escaláveis. Manter o MySQL externo também permitirá que mais aplicações aproveitem o mesmo banco de dados para seus casos de uso.

Neste post, nós instalaremos o WordPress no Kubernetes usando o gerenciador de pacotes Helm e os conectaremos a um servidor MySQL externo. Vamos começar!

Pré-requisitos

A seguinte configuração de software será necessária para a conclusão bem-sucedida deste tutorial:

  1. Um cluster Kubernetes ativo e em execução. Siga este tutorial para as etapas de instalação do Kubernetes no Ubuntu.
  2. A ferramenta de linha de comando do Kubernetes kubectl.
  3. Você precisará de um gerenciador de pacotes Helm instalado. Se você não tiver o Helm pronto para ser usado, poderá baixá-lo de sua página oficial de lançamentos no GitHub – helm/helm: The Kubernetes Package Manager. Para começar com um guia passo a passo do Helm, você também pode ler Introdução ao Helm: Gerenciador de Pacotes para Kubernetes.
  4. Você precisará ter o MySQL instalado junto com o usuário root e a senha. Se você é novo no MySQL, certifique-se de conferir Como configurar o MySQL em um servidor e conceitos básicos do MySQL e MySQL User – Create and Grant Permissions.

Você também precisa ter um cluster Kubernetes em execução conectado ao MySQL. Para usuários que possuem múltiplos clusters, certifique-se de saber qual é o cluster atual conectado ao MySQL. Para ver todos os diferentes clusters configurados no seu arquivo de configuração kubectl config, execute o comando abaixo:

Na sua máquina, você deve obter a saída abaixo:

Current

Name

Cluster

AuthInfo

Namespace

*

docker-desktop

docker-desktop

docker-desktop

Como estamos usando o Docker Desktop para executar o Kubernetes, você verá docker-desktop exibido. Seus valores podem ser diferentes. O sinal de asterisco (*) indica qual cluster é atualmente o contexto padrão. Caso precise alterar o contexto atual, execute:

Agora você está pronto para seguir as etapas do tutorial.

Configurando o MySQL

Primeiro, criaremos um usuário dedicado no MySQL para se conectar ao WordPress. Isso é necessário porque nossa instalação do WordPress ficará em um servidor separado dentro do cluster Kubernetes. A partir do servidor MySQL, faça login no MySQL com o seguinte comando:

Será solicitada a senha do root. Digite a senha e você estará conectado.

  • Criando um banco de dados dedicado para o WordPress

No MySQL pode haver qualquer número de bancos de dados. Outros bancos de dados também podem ser compartilhados entre aplicações. O WordPress também vem com seu próprio banco de dados. Aqui temos que criar um banco de dados dedicado para o WordPress. Para criar este banco de dados dedicado, você pode executar a instrução abaixo no bash do MySQL:

  • Criando um usuário dedicado para o WordPress

Após a criação do banco de dados, criaremos um usuário dedicado para este banco de dados. Usaremos este usuário para nos conectar ao nosso banco de dados recém-criado:

Insira uma senha forte acima. Embora tenhamos criado o usuário para o WordPress, ainda não adicionamos nenhum privilégio. Precisamos fornecer privilégios aos nossos usuários para acesso e operações DML (Data Manipulation Language). Para simplificar as coisas, vamos fornecer aos nossos usuários todos os privilégios. Tenha cuidado, isso não é recomendado em Produção. Execute o comando abaixo no shell do MySQL:

Para atualizar as tabelas internas do MySQL que gerenciam as permissões de acesso, use a seguinte instrução:

Finalmente, você pode fechar o cliente MySQL executando o comando abaixo no shell do MySQL:

  • Verificando nosso usuário e banco de dados

Em seguida, precisamos verificar se o nosso WordPress usuário consegue se conectar ao banco de dados do WordPress. Para fazer isso, abra o shell do MySQL e execute o comando abaixo:

Sua senha será solicitada. Use a senha que você inseriu acima para o usuário do WordPress. Se você conseguir fazer login, parabéns, você criou um usuário do MySQL com sucesso. Em seguida, verifique se este usuário tem acesso ao banco de dados do WordPress. Execute o comando abaixo no shell do MySQL:
Se você vir o seu banco de dados do WordPress abaixo, o seu usuário do WordPress tem acesso ao banco de dados do WordPress.

  • Permitindo conexões remotas ao nosso servidor MySQL

Até agora, temos um usuário do WordPress e um banco de dados do WordPress funcionando. No entanto, nosso servidor MySQL e o banco de dados do WordPress estão em servidores separados. Portanto, precisamos garantir que o WordPress consiga se conectar ao banco de dados MySQL. Para isso, precisamos editar nossa configuração do MySQL para permitir conexões vindas de hosts remotos. Você precisará editar o arquivo mysqld.cnf. Em sistemas baseados em Linux, este arquivo está presente em:

Depois disso, abra o arquivo usando qualquer editor de texto e localize o bind-address. O bind-address especifica o IP no qual o MySQL pode escutar. Por padrão, o MySQL escuta apenas em 127.0.0.1.. Para permitir conexões de hosts externos, altere o bind-address para 0.0.0.0.. Para que essas alterações entrem em vigor, reinicie o servidor MySQL executando o comando abaixo:

Em seguida, se você quiser testar se consegue se conectar remotamente, execute o seguinte comando a partir da sua máquina local ou servidor de desenvolvimento:
Adicione mysql_server_ip ao comando acima e execute. Se você conseguir se conectar sem erros, poderá prosseguir.

Instalando e atualizando o WordPress

O WordPress por padrão usa o MariaDB como seu banco de dados. Não queremos usar esse banco de dados, pois queremos o nosso banco de dados MySQL. Juntamente com essa alteração, também precisamos configurar o usuário administrador e a senha. Faremos isso implementando parâmetros de linha de comando.

Primeiro, crie uma nova pasta chamada my blog-settings. Dentro da pasta, crie um novo arquivo chamado values.yaml. Insira o conteúdo abaixo no arquivo values.yaml:

Este arquivo é autoexplicativo. Observe que abaixo desabilitamos o MariaDB. Agora que nossa configuração está pronta, é hora de executar o helm para uma instalação do WordPress. Execute o comando abaixo no PowerShell:

Assim que o processo for concluído, você verá um serviço criado com o nome myblog-wordpress. Levará algum tempo até que o WordPress esteja pronto para ser usado. Para encontrar os serviços em execução, execute o comando abaixo:
Você obterá um resultado como este:

NAME

TYPE

CLUSTER-IP

EXTERNAL-IP

PORT

myblog-wordpress

ClusterIP

10.96.0.1

<none>

80:31403/TCP,443:30879/TCP

Aqui temos informações muito úteis sobre os serviços em execução. Precisamos prestar atenção ao IP externo e à Porta. O IP externo é o IP no qual o seu WordPress está sendo servido. Como estamos usando o Docker Desktop, estamos obtendo none sob o IP externo. Você obterá o IP dependendo do seu sistema. Abra o seu navegador web e insira este IP. Você verá a página de login do WordPress:

WordPress with MySQL 1

Estas são as credenciais que fornecemos no arquivo YAML acima. Insira essas credenciais e você estará pronto para configurar seu site no WordPress e armazenar conteúdo em nosso banco de dados MySQL recém-criado.

Atualizando o WordPress

O WordPress lança atualizações para corrigir vulnerabilidades de segurança e disponibilizar mais recursos/correções de bugs e muito mais. Você pode atualizar a instalação do WordPress executando o comando abaixo no PowerShell:

Antes da atualização, se você quiser ver a lista de versões lançadas, pode executar o comando abaixo:

Você obterá a seguinte saída como:

Se você quiser ver se há uma nova versão do repositório do WordPress disponível, pode executar o comando abaixo:

Sempre que quiser atualizar sua versão do WordPress para o chart do WordPress mais recente, você deve executar:

Temos que usar o mesmo arquivo de configuração de antes para que os valores de configuração não mudem.

Revertendo uma Versão

Toda vez que você realiza uma atualização usando o Helm, o Helm cria um ponto de verificação da versão. Você pode voltar se as coisas não funcionarem como esperado. As versões podem ser comparadas e revertidas. Se o processo de atualização der errado devido a qualquer problema, você pode reverter para a versão anterior. Para reverter, execute o comando abaixo:

No nosso caso, execute o comando abaixo para reverter para a versão anterior:

Para verificar agora que o processo de reversão foi concluído com sucesso, você pode executar o comando helm list.

Conclusão

Neste tutorial abrangente, mostramos como configurar o MySQL e instalar o WordPress com este MySQL externo. Instalamos o WordPress no Kubernetes usando o gerenciador de pacotes Helm e também realizamos atualizações no WordPress.

Agora que você conhece a instalação no Kubernetes usando o Helm, não pare por aqui. Sinta-se à vontade para acessar o blog da CloudSigma para saber mais sobre o Kubernetes:

Boa Computação!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev é um designer criativo na CloudSigma, focado na construção de uma identidade empresarial consistente por meio de canais de marketing tradicionais e inovadores. Ele é hábil em combinar a visão artística com o marketing estratégico para criar narrativas de marca impactantes.

Comentários

Nenhum comentário ainda. Seja o primeiro.