Skip to content
This repository was archived by the owner on Oct 1, 2024. It is now read-only.

Commit 894e32e

Browse files
authored
Brazilian README file added
Brazilian README file added
1 parent 41c6623 commit 894e32e

File tree

1 file changed

+178
-0
lines changed

1 file changed

+178
-0
lines changed

README-pt.md

+178
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
[![Build Status](https://travis-ci.org/IBM/Scalable-WordPress-deployment-on-Kubernetes.svg?branch=master)](https://travis-ci.org/IBM/Scalable-WordPress-deployment-on-Kubernetes)
2+
3+
*Ler em outros idiomas: [한국어](README-ko.md).*
4+
5+
# Implementação escalável do WordPress no Cluster Kubernetes
6+
7+
Esta jornada apresenta toda a força dos clusters Kubernetes e mostra como podemos implementar a estrutura de website mais popular do mundo na plataforma de orquestração de contêineres mais popular do mundo. Fornecemos um roteiro completo para hospedar o WordPress em um Cluster Kubernetes. Cada componente é executado em um contêiner ou grupo de contêineres separado.
8+
9+
O WordPress representa um aplicativo típico multicamada; cada componente terá seus próprios contêineres. Os contêineres do WordPress serão a camada de front-end; o contêiner do MySQL será a camada de banco de dados/backend para o WordPress. A
10+
11+
lém da implementação no Kubernetes, mostraremos como é possível ajustar a escala da camada frontal do WordPress e como o MySQL pode ser utilizado como um serviço do Bluemix para uso pelo front-end do WordPress.
12+
13+
![kube-wordpress](images/kube-wordpress-code.png)
14+
15+
## Componentes inclusos
16+
- [WordPress (mais recente)](https://hub.docker.com/_/wordpress/)
17+
- [MySQL (5.6)](https://hub.docker.com/_/mysql/)
18+
- [Clusters Kubernetes](https://console.ng.bluemix.net/docs/containers/cs_ov.html#cs_ov)
19+
- [Bluemix Container Service](https://console.ng.bluemix.net/catalog/?taxonomyNavigation=apps&category=containers)
20+
- [Bluemix Compose for MySQL](https://console.ng.bluemix.net/catalog/services/compose-for-mysql)
21+
- [Bluemix DevOps Toolchain Service](https://console.ng.bluemix.net/catalog/services/continuous-delivery)
22+
23+
## Pré-requisito
24+
25+
Crie um cluster Kubernetes com [Minikube](https://kubernetes.io/docs/getting-started-guides/minikube) para testes locais ou com o [IBM Bluemix Container Service](https://github.com/IBM/container-journey-template) para implementação na cloud. O código é testado regularmente com relação ao [Cluster Kubernetes do Bluemix Container Service](https://console.ng.bluemix.net/docs/containers/cs_ov.html#cs_ov) usando Travis.
26+
27+
## Objetivos
28+
29+
Este cenário fornece instruções para as tarefas a seguir: - Criar volumes persistentes locais para definir discos persistentes. - Criar um segredo para proteger dados sensíveis. - Criar e implementar o front-end do WordPress com um ou mais pods. - Criar e implementar o banco de dados do MySQL (em um contêiner ou usando o Bluemix MySQL como backend).
30+
31+
## Implementar no Bluemix
32+
33+
Se quiser implementar o WordPress diretamente no Bluemix, clique no botão 'Deploy to Bluemix' abaixo para criar uma cadeia de ferramentas de serviço do Bluemix DevOps e um canal para implementação da amostra do WordPress ou avance para [Etapas](##steps)
34+
35+
[![Create Toolchain](https://github.com/IBM/container-journey-template/blob/master/images/button.png)](https://console.ng.bluemix.net/devops/setup/deploy/)
36+
37+
Siga as [instruções da cadeia de ferramentas](https://github.com/IBM/container-journey-template/blob/master/Toolchain_Instructions_new.md) para concluir a cadeia de ferramentas e o canal.
38+
39+
## Etapas
40+
1. [Configurar segredos do MySQL](#1-setup-mysql-secrets)
41+
2. [Criar serviços e implementações para WordPress e MySQL](#2-create-services-and-deployments-for-wordpress-and-mysql)
42+
- 2.1 [Usando o MySQL no contêiner](#21-using-mysql-in-container)
43+
- 2.2 [Usando o Bluemix MySQL](#22-using-bluemix-mysql-as-backend)
44+
3. [Acessando o link externo do WordPress](#3-accessing-the-external-wordpress-link)
45+
4. [Usando o WordPress](#4-using-wordpress)
46+
47+
# 1. Configurar segredos do MySQL
48+
49+
> *Opção de iniciação rápida:* Neste repositório, execute `bash scripts/quickstart.sh`.
50+
51+
Crie um novo arquivo chamado `password.txt` no mesmo diretório e coloque a senha desejada do MySQL em `password.txt` (pode ser qualquer cadeia de caractere com caracteres ASCII).
52+
53+
Precisamos ter certeza de que `password.txt` não contém nenhuma linha nova posterior. Utilize o comando a seguir para remover possíveis linhas novas.
54+
```bash
55+
tr -d '\n' <password.txt >.strippedpassword.txt &amp;&amp; mv .strippedpassword.txt password.txt
56+
```
57+
58+
# 2. Criar serviços e implementações para WordPress e MySQL
59+
60+
### 2.1 Usando o MySQL no contêiner
61+
> *Observação:* se quiser usar o Bluemix Compose-MySql como backend, acesse [Usando o Bluemix MySQL como backend](#22-using-bluemix-mysql-as-backend).
62+
63+
Instale o volume persistente no armazenamento local do cluster. Em seguida, crie o segredo e serviços para MySQL e WordPress.
64+
65+
```bash
66+
kubectl create -f local-volumes.yaml kubectl create secret generic mysql-pass --from-file=password.txt kubectl create -f mysql-deployment.yaml kubectl create -f wordpress-deployment.yaml
67+
```
68+
69+
Quando todos os pods estiverem em execução, execute os comandos a seguir para verificar os nomes deles.
70+
71+
```bash
72+
kubectl get pods
73+
```
74+
Isso deve gerar uma lista de pods a partir do cluster Kubernetes.
75+
```bash
76+
NAME READY STATUS RESTARTS AGE wordpress-3772071710-58mmd 1/1 Running 0 17s wordpress-mysql-2569670970-bd07b 1/1 Running 0 1m
77+
```
78+
Agora, prossiga para [Acessando o link externo](#3-accessing-the-external-link).
79+
80+
### 2.2 Usando o Bluemix MySQL como backend
81+
82+
Provision Compose for MySQL no Bluemix por meio de https://console.ng.bluemix.net/catalog/services/compose-for-mysql
83+
84+
85+
Acesse as credenciais de serviço e visualize suas credenciais. O nome do host, porta, usuário e senha do MySQL estão na URI da credencial e devem ter esta aparência:
86+
87+
![mysql](images/mysql.png)
88+
89+
Modifique o arquivo `wordpress-deployment.yaml`, altere o valor WORDPRESS_DB_HOST para o nome do host e a porta do MySQL (ou seja, `value: <hostname>:<port>`), o valor WORDPRESS_DB_USER para o usuário do MySQL e o valor WORDPRESS_DB_PASSWORD para a senha do MySQL.
90+
91+
As variáveis de ambiente devem ter esta aparência:
92+
93+
```yaml
94+
spec: containers: - image: wordpress:4.7.3-apache name: wordpress env: - name: WORDPRESS_DB_HOST value: sl-us-dal-9-portal.7.dblayer.com:22412 - name: WORDPRESS_DB_USER value: admin - name: WORDPRESS_DB_PASSWORD value: XMRXTOXTDWOOPXEE
95+
```
96+
Depois de modificar o `wordpress-deployment.yaml`, execute os comandos a seguir para implementar o WordPress.
97+
98+
```bash
99+
kubectl create -f local-volumes.yaml kubectl create -f wordpress-deployment.yaml ``` Quando todos os pods estiverem em execução, execute os comandos a seguir para verificar os nomes deles. ```bash kubectl get pods
100+
```
101+
Isso deve gerar uma lista de pods a partir do cluster Kubernetes.
102+
```bash
103+
NAME READY STATUS RESTARTS AGE wordpress-3772071710-58mmd 1/1 Running 0 17s
104+
```
105+
106+
107+
# 3. Acessando o link externo do WordPress
108+
109+
> Se tiver um cluster pago, será possível usar o LoadBalancer em vez do NodePort executando
110+
> >`kubectl edit services wordpress`
111+
112+
> > Em `spec`, altere `type: NodePort` para `type: LoadBalancer`
113+
114+
> > **Observação:** confira se `service "wordpress" edited` é exibido após a edição do arquivo yaml, porque isso significa que o arquivo yaml foi editado com sucesso, sem erros tipográficos ou de conexão.
115+
116+
Para obter o endereço IP do cluster, utilize
117+
```bash
118+
$ bx cs workers <your_cluster_name>
119+
OK
120+
ID Public IP Private IP Machine Type State Status
121+
kube-hou02-pa817264f1244245d38c4de72fffd527ca-w1 169.47.220.142 10.10.10.57 free normal Ready
122+
```
123+
Você também precisará executar o comando a seguir para obter o número NodePort.
124+
```bash
125+
$ kubectl get svc wordpress NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE wordpress 10.10.10.57 <nodes> 80:30180/TCP 2m
126+
```
127+
Parabéns. Agora, você pode usar o link **http://[IP]:[número da porta]** para acessar seu site no WordPress.
128+
> **Observação:** para o exemplo acima, o link seria http://169.47.220.142:30180 É possível verificar o status da implementação na interface com o usuário do Kubernetes.
129+
130+
Execute `kubectl proxy` e acesse a URL 'http://127.0.0.1:8001/ui' para verificar quando o contêiner do WordPress ficará pronto.
131+
132+
![Kubernetes Status Page](images/kube_ui.png)
133+
134+
>**Observação:** os pods podem levar até cinco minutos para começar a funcionar por completo.
135+
136+
**(Opcional)** Se você tiver mais recursos no cluster e quiser aumentar a capacidade do website do WordPress, poderá executar os comandos a seguir para verificar as implementações atuais.
137+
```bash
138+
$ kubectl get deployments
139+
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
140+
wordpress 1 1 1 1 23h wordpress-mysql 1 1 1 1 23h
141+
```
142+
Agora, é possível usar os comandos a seguir para aumentar a capacidade para o front-end do WordPress.
143+
```bash
144+
$ kubectl scale deployments/wordpress --replicas=2 deployment "wordpress" scaled
145+
$ kubectl get deployments
146+
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
147+
wordpress 2 2 2 2 23h wordpress-mysql 1 1 1 1 23h
148+
```
149+
Como pode ser visto, temos dois pods que estão em execução no front-end do WordPress. > **Observação:** caso você seja um usuário de camada gratuita, recomendamos aumentar a capacidade para apenas 10 pods, uma vez que os usuários de camada gratuita têm recursos limitados.
150+
151+
# 4. Usando o WordPress
152+
Com o WordPress em execução, é possível se inscrever como novo usuário e instalar o WordPress.
153+
154+
![wordpress home Page](images/wordpress.png)
155+
156+
Depois de instalar o WordPress, você poderá publicar novos comentários.
157+
158+
![wordpress comment Page](images/wordpress_comment.png)
159+
160+
# Resolução de problemas
161+
Caso tenha criado acidentalmente uma senha com linhas novas e não consiga autorizar o serviço do MySQL, você pode excluir o segredo atual usando
162+
```bash
163+
kubectl delete secret mysql-pass
164+
```
165+
Se quiser excluir seus serviços, implementações e a solicitação de volume persistente, você poderá executar
166+
```bash
167+
kubectl delete deployment,service,pvc -l app=wordpress
168+
```
169+
Para excluir seu volume persistente, é possível executar os comandos a seguir
170+
```bash
171+
kubectl delete -f local-volumes.yaml
172+
```
173+
174+
175+
# Referências
176+
- Este exemplo do WordPress baseia-se no exemplo de software livre do Kubernetes [mysql-wordpress-pd](https://github.com/kubernetes/kubernetes/tree/master/examples/mysql-wordpress-pd) em https://github.com/kubernetes/kubernetes/tree/master/examples/mysql-wordpress-pd.
177+
# Licença
178+
[Apache 2.0](LICENÇA)

0 commit comments

Comments
 (0)