Criação de uma carga de trabalho do WordPress
WordPress foi originalmente uma plataforma de blog baseada em PHP e MySQL. É gradualmente evoluído para um sistema de gerenciamento de conteúdo. Você pode configurar seu próprio blog em qualquer servidor que suporte PHP e MySQL. Milhares de plug-ins e inúmeros modelos de tema estão disponíveis para WordPress e fácil de instalar.
Esta seção descreve como criar um site público do WordPress a partir de imagens.
Pré-requisitos
- Você criou um cluster do CCE que contém um nó com 4 vCPUs e 8 GiB de memória. Para obter detalhes sobre como criar um cluster, consulte Criação um cluster do Kubernetes.
- O banco de dados MySQL foi criado seguindo as instruções em Criação de uma carga de trabalho do MySQL. Neste exemplo, os dados do WordPress são armazenados no banco de dados MySQL.
Operações no console
- Efetue logon no console do CCE.
- Escolha o cluster de destino.
- No painel de navegação, escolha Workloads. Em seguida, clique em Create Workload.
- Defina parâmetros de carga de trabalho.
Basic Info
- Workload Type: selecione Deployment.
- Workload Name: defini-lo para wordpress.
- Namespace: selecione Default.
- Pods: defina este parâmetro como 2 neste exemplo.
Figura 1 Configurar as informações básicas sobre a carga de trabalho
Container Settings
Na área Basic Info, clique em Select Image. Na caixa de diálogo exibida, selecione Open Source Images, procure por wordpress, selecione a imagem wordpress e defina a tag de imagem para php7.3.
Figura 2 Selecionar uma tag de imagem
Adicione as seguintes variáveis de ambiente:
(Essas variáveis permitem que o WordPress saiba as informações sobre o banco de dados MySQL.)
- WORDPRESS_DB_HOST: endereço para acessar o banco de dados, que pode ser encontrado no Serviço (na página de guia Services) da carga de trabalho do MySQL. Você pode usar o nome de domínio interno mysql.default.svc.cluster.local:3306 para acessar o banco de dados ou usar apenas mysql:3306 omitindo .default.svc.cluster.local.
- WORDPRESS_DB_USER: nome do usuário para acessar o banco de dados. O valor deve ser o mesmo do MYSQL_USER em Criação de uma carga de trabalho do MySQL, que é usado para se conectar ao MySQL.
- WORDPRESS_DB_PASSWORD: senha para acessar o banco de dados. O valor deve ser o mesmo que o de MYSQL_PASSWORD em Criação de uma carga de trabalho do MySQL.
- WORDPRESS_DB_NAME: nome do banco de dados a ser acessado. O valor deve ser o mesmo do MYSQL_DATABASE em Criação de uma carga de trabalho do MySQL.
Figura 3 Configurar variáveis de ambiente
Service Settings
Clique no sinal de mais (+) para criar um serviço para acessar a carga de trabalho de uma rede externa. Neste exemplo, crie um Serviço LoadBalancer. Configure os seguintes parâmetros:
- Service Name: nome do Serviço exposto a redes externas. Neste exemplo, o nome do Serviço é wordpress.
- Access Type: selecione LoadBalancer.
- Service Affinity: mantenha o valor padrão.
- Load Balancer: se um balanceador de carga estiver disponível, selecione um balanceador de carga existente. Caso contrário, clique em Create Load Balancer para criar um no console do ELB.
- Port:
- Protocol: selecione TCP.
- Service Port: defina esse parâmetro como 80, que é mapeado para a porta do contêiner.
- Container Port: porta na qual a aplicação escuta. Para contêineres criados usando a imagem de nginx, defina esse parâmetro como 80. Para outras aplicações, defina este parâmetro para a porta da aplicação.
Figura 4 Criar um Serviço
- Clique em Create Workload.
Aguarde até que a carga de trabalho seja criada.
A Implementação criada será exibida na guia Deployments.
Figura 5 Carga de trabalho criada com sucesso
Operações através do kubectl
Esta seção descreve como usar o kubectl para criar uma Implementação e expor a Implementação na Internet por meio de um Serviço LoadBalancer.
- Use o kubectl para se conectar ao cluster. Para obter detalhes, consulte Conexão a um cluster usando o kubectl.
- Crie um arquivo de descrição chamado wordpress-deployment.yaml. wordpress-deployment.yaml é um nome de arquivo de exemplo. Você pode renomeá-lo conforme necessário.
vi wordpress-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: wordpress namespace: default spec: replicas: 2 selector: matchLabels: app: wordpress version: v1 template: metadata: labels: app: wordpress version: v1 spec: containers: - name: container-1 image: wordpress:php7.3 env: - name: WORDPRESS_DB_HOST value: mysql:3306 - name: WORDPRESS_DB_USER value: db_user - name: WORDPRESS_DB_PASSWORD value: password@123 - name: WORDPRESS_DB_NAME value: database resources: requests: cpu: 250m memory: 128Mi limits: cpu: 250m memory: 128Mi imagePullSecrets: - name: default-secret
- Crie uma carga de trabalho do WordPress
kubectl apply -f wordpress-deployment.yaml
Se as informações a seguir forem exibidas, isso indicará que a Implementação está sendo criada.
deployment "wordpress" created
Verifique a Implementação.
kubectl get deployment
Se as informações a seguir forem exibidas, a Implementação está sendo executada.
NAME READY UP-TO-DATE AVAILABLE AGE wordpress 1/1 1 1 4m5s
- Crie um arquivo de descrição chamado wordpress-service.yaml. wordpress-service.yaml é um nome de arquivo de exemplo. Você pode renomeá-lo conforme necessário.
vi wordpress-service.yaml
apiVersion: v1 kind: Service metadata: name: wordpress namespace: default annotations: kubernetes.io/elb.class: union kubernetes.io/elb.autocreate: '{ "type": "public", "bandwidth_name": "cce-wordpress", "bandwidth_chargemode": "bandwidth", "bandwidth_size": 5, "bandwidth_sharetype": "PER", "eip_type": "5_bgp" }' spec: selector: app: wordpress externalTrafficPolicy: Cluster ports: - name: cce-service-0 targetPort: 80 nodePort: 0 port: 80 protocol: TCP type: LoadBalancer
- Crie um Serviço.
kubectl create -f wordpress-service.yaml
Se forem apresentadas informações semelhantes às seguintes, o Serviço foi criado.
service/wordpress created
kubectl get svc
Se informações semelhantes às seguintes forem exibidas, o tipo de acesso foi configurado e a carga de trabalho está acessível.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.247.0.1 <none> 443/TCP 3d mysql ClusterIP 10.247.202.20 <none> 3306/TCP 8m wordpress LoadBalancer 10.247.130.196 **.**.**.** 80:31540/TCP 51s
Acessar WordPress
- Obtenha o endereço de acesso externo do WordPress.
Clique na carga de trabalho do wordpress para entrar na página de detalhes. Na página de guia Access Mode, exiba o endereço IP do WordPress. O endereço IP do balanceador de carga é o endereço de acesso externo.
Figura 6 Acessar WordPress
- Digite o endereço de acesso externo na caixa de endereço de um navegador para se conectar à carga de trabalho.
A figura a seguir mostra a página de WordPress acessada.
Figura 7 Carga de trabalho do WordPress
Figura 8 WordPress
Excluir recursos
Até agora, você completou todas as instruções de Primeiros passos e entendeu como usar o CCE. As taxas são incorridas enquanto os nós estão em execução. Se os clusters usados nos guias de Primeiros passos não estiverem mais em uso, execute as etapas a seguir para excluí-los. Se você vai continuar os percursos manuais do CCE, retenha os clusters.
- Efetue logon no console do CCE.
- No painel de navegação à esquerda, escolha Clusters.
- Clique em ao lado de um cluster e exclua o cluster conforme solicitado.
Figura 9 Excluir um cluster