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:
- Um cluster Kubernetes ativo e em execução. Siga este tutorial para as etapas de instalação do Kubernetes no Ubuntu.
- A ferramenta de linha de comando do Kubernetes
kubectl. - 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.
- 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:
|
1 |
kubectl config get-contexts |
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:
|
1 |
kubectl config use-context context-name |
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:
|
1 |
mysql -u root -p |
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:
|
1 |
CREATE DATABASE wordpress |
-
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:
|
1 |
CREATE USER wordpress_user IDENTIFIED BY '<password>'; |
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:
|
1 |
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@'%'; |
Para atualizar as tabelas internas do MySQL que gerenciam as permissões de acesso, use a seguinte instrução:
|
1 |
FLUSH PRIVILEGES; |
Finalmente, você pode fechar o cliente MySQL executando o comando abaixo no shell do MySQL:
|
1 |
Exit; |
-
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:
|
1 |
mysql -u <wordpress_user> -p |
|
1 |
show databases |
-
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:
|
1 |
/etc/mysql/mysql.conf.d/mysqld.cnf |
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:
|
1 |
systemctl restart mysql |
|
1 |
mysql -h <mysql_server_ip> -u wordpress_user -p |
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
## Configurações do WordPress wordpressUsername: my_user wordpressPassword: some_strong_password wordpressEmail: sample@example.com wordpressFirstName: User wordpressLastName: Last wordpressBlogName: Meu Blog! ## Configurações do Banco de Dados externalDatabase: host: <mysql_server_ip> user: wordpress_user password: password database: wordpress ## Habilitar Maria DB mariadb: enabled: false |
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:
|
1 |
helm install myblog -f values.yaml stable/wordpress |
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:|
1 |
kubectl get services |
|
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:
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:
|
1 |
helm upgrade |
Antes da atualização, se você quiser ver a lista de versões lançadas, pode executar o comando abaixo:
|
1 |
helm list |
Você obterá a seguinte saída como:
|
1 2 3 |
Aguarde firme enquanto nós buscamos o mais recente de seus charts repositórios… …Ignorar local chart repositório …Com sucesso obtida uma atualização do repositório “stable” chart repositório |
Se você quiser ver se há uma nova versão do repositório do WordPress disponível, pode executar o comando abaixo:
|
1 |
helm inspect chart stable/wordpress |
Sempre que quiser atualizar sua versão do WordPress para o chart do WordPress mais recente, você deve executar:
|
1 |
helm upgrade -f values.yaml <your_name> stable/wordpress |
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:
|
1 |
helm rollback release-name revision-number |
No nosso caso, execute o comando abaixo para reverter para a versão anterior:
|
1 |
helm rollback myblog 1 |
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:
- Implantar uma Aplicação PHP em um Cluster Kubernetes com o Ubuntu 18.04
- Como Criar um Cluster Kubernetes Usando o Kubeadm no Ubuntu 18.04
- O que é o Docker? Uma Visão Geral do Ecossistema Docker
Boa Computação!

Comentários
Nenhum comentário ainda. Seja o primeiro.