feat(day-03): add instructions for third day

This commit is contained in:
João Paulo Dubas 2024-05-28 17:28:15 +00:00
parent 843ec0b0f2
commit 5c75bb56c4
Signed by: joao.dubas
SSH Key Fingerprint: SHA256:V1mixgOGRc/YMhGx/DNkOSmJxgA2vHNrDZEk3wt/kOA
5 changed files with 110 additions and 0 deletions

View File

@ -29,6 +29,7 @@ kubectl 1.29.4
* [dia-01][dia-01]: subindo primeiro _cluster_ com [`kind`][kind] e fazendo _deploy_ do primeiro `pod`
* [dia-02][dia-02]: realizando _deploy_ de `pod` com múltiplos _containers_, definição de volume e limitação de recursos
* [dia-03][dia-03]: criando `namespace` e `deployment` em conjunto com estratégias de _rollout_
Pode ser seguido em no
@ -37,3 +38,4 @@ Pode ser seguido em no
[kind]: https://kind.sigs.k8s.io/
[dia-01]: ./day-001/README.md
[dia-02]: ./day-002/README.md
[dia-03]: ./day-003/README.md

42
day-003/README.md Normal file
View File

@ -0,0 +1,42 @@
# Descomplicando `kubernetes` - Dia 03
## Criar `namespace`
Podemos criar nosso primeiro `namespace` manualmente, usando o comando:
```bash
kubectl create namespace <namespace-name>
```
Ou, a partir de um manifesto `yaml`:
```bash
kubectl apply -f <namespace-definition>.yml
```
No nosso _cluster_ criaremos o primeiro `namespace` utilizando o arquivo [`namespace.yml`][namespace-config].
## _Deploy_ do `nginx`
Além dos recursos de definição do `pod` vistos nos dias [01][day-001-pod] e
[02][day-002-pod]. Podemos definir detalhes adicionais usando o [`deployment.yml`][deployment-config].
O _deploy_ do `nginx` será feito usando o comando:
```bash
kubectl apply -f deployment.yml
```
Nele definimos o:
1. Número de _replicas_ do serviço
2. Estrategia de _rollout_ do _deploy_
3. Detalhes dos _containers_ a serem executados
[Voltar para o `README`][readme]
[namespace-config]: ./namespace.yml
[day-001-pod]: ../day-001/pod.yml
[day-002-pod]: ../day-002/pod.yml
[deployment-config]: ./deployment.yml
[readme]: ../README.md

View File

@ -0,0 +1,26 @@
---
# Created with:
# kubectl create deployment nginx-create-deployment --image nginx --replicas 3 --dry-run=client -o yaml > created-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: nginx-create-deployment
name: nginx-create-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx-create-deployment
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: nginx-create-deployment
spec:
containers:
- image: nginx
name: nginx
resources: {}

35
day-003/deployment.yml Normal file
View File

@ -0,0 +1,35 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: nxing-deployment
minion: banana
name: nginx-deployment
namespace: application
spec:
replicas: 30
selector:
matchLabels:
app: nginx-deployment
strategy:
# type: Recreate
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
template:
metadata:
labels:
app: nginx-deployment
spec:
containers:
- image: 'nginx:1.21.0'
name: server
resources:
limits:
cpu: '0.5'
memory: '256Mi'
requests:
cpu: '0.3'
memory: '64Mi'

5
day-003/namespace.yml Normal file
View File

@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: application