Documentação referente a aplicação das tecnologias WordPress e MySQL utilizando K8s.
- Possuir o Docker Desktop instalado.
Este tópico apresenta a descrição da estrutura do projeto.
- Namespace: fornecer isolamento de recursos para o
labwordpress
. - Services: expor a comunicação do cluster (
ClusterIP
,NodePort
ouLoadBalancer
). - Secrets: contém dados confidenciais, por esse motivo não pode ser exposto neste repositório.
- Volumes: armazenar arquivos dos containers.
- Deployments: representar uma aplicação que será executada no cluster, podendo alterar a quantidade de réplicas simultâneas.
- Ingress: expor rotas para fora do cluster.
Este tópico apresenta os estágios a serem seguidos para implementação.
- Aplicar arquivo para criação do namespace.
kubectl apply -f namespace/namespace.yaml
- O estágio anterior pode ser substituído pelo comando abaixo.
kubectl create namespace labwordpress
- Listar namespaces.
kubectl get namespace
- Aplicar arquivos de criação dos services.
kubectl apply -f services/mysql-svc.yaml
kubectl apply -f services/wordpress-svc.yaml
- Listar services do namespace labwordpress.
kubectl get svc -n labwordpress
- Modelo do arquivo secret.yaml.
apiVersion: v1
kind: Secret
metadata:
name: mysql-secret
namespace: labwordpress
type: Opaque
data:
mysql_root_password: <root-password>
mysql_user: <user>
mysql_password: <user-password>
- Aplicar arquivo secret.
kubectl apply -f secrets/secret.yaml
- Verificar secret do namespace labwordpress.
kubectl get secret -n labwordpress
- Aplicar arquivos de PersistentVolumeClaim (PVC).
kubectl apply -f volumes/mysql-pvc.yaml
kubectl apply -f volumes/wordpress-pvc.yaml
- Verificar a criação dos PVCs do namespace labwordpress.
kubectl get pvc -n labwordpress
- Aplicar arquivos de deployment.
kubectl apply -f deployments/mysql.yaml
kubectl apply -f deployments/wordpress.yaml
- Verificar deployments do namespace labwordpress.
kubectl get deployment -n labwordpress
- Aplicar arquivo do ingress-controller baseado no nginx.
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.5.1/deploy/static/provider/cloud/deploy.yaml
- Verificar pods do ingress.
kubectl get pods -n ingress-nginx
- Aplicar arquivo do ingress.
kubectl apply -f ingress/wordpress-ingress.yaml
- Verificar ingress do namespace labwordpress.
kubectl get ingress -n labwordpress
- Listar recursos do namespace labwordpress.
kubectl get all -n labwordpress
- Alterar arquivo hosts adicionando linha contendo o IP do host e o domínio do host adicionado no ingress.
C:\Windows\System32\drivers\etc\hosts
127.0.0.1 wordpress.compass.com
- URL browser: wordpress.compass.com
- Diretório dos volumes.
\\wsl$\docker-desktop-data\data\k8s-pvs
- Container.
kubectl exec -it <pod-name> -n labwordpress -- /bin/bash
- Verificar logs.
kubectl logs -f <pod-name> -n labwordpress