From 5c75bb56c484b8e4fb55977d461af4b4279b2c20 Mon Sep 17 00:00:00 2001 From: Joao P Dubas Date: Tue, 28 May 2024 17:28:15 +0000 Subject: [PATCH] feat(day-03): add instructions for third day --- README.md | 2 ++ day-003/README.md | 42 ++++++++++++++++++++++++++++++++++ day-003/created-deployment.yml | 26 +++++++++++++++++++++ day-003/deployment.yml | 35 ++++++++++++++++++++++++++++ day-003/namespace.yml | 5 ++++ 5 files changed, 110 insertions(+) create mode 100644 day-003/README.md create mode 100644 day-003/created-deployment.yml create mode 100644 day-003/deployment.yml create mode 100644 day-003/namespace.yml diff --git a/README.md b/README.md index b489609..d8c2416 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/day-003/README.md b/day-003/README.md new file mode 100644 index 0000000..dcccf9a --- /dev/null +++ b/day-003/README.md @@ -0,0 +1,42 @@ +# Descomplicando `kubernetes` - Dia 03 + +## Criar `namespace` + +Podemos criar nosso primeiro `namespace` manualmente, usando o comando: + +```bash +kubectl create namespace +``` + +Ou, a partir de um manifesto `yaml`: + +```bash +kubectl apply -f .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 diff --git a/day-003/created-deployment.yml b/day-003/created-deployment.yml new file mode 100644 index 0000000..e5bb358 --- /dev/null +++ b/day-003/created-deployment.yml @@ -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: {} diff --git a/day-003/deployment.yml b/day-003/deployment.yml new file mode 100644 index 0000000..391d99e --- /dev/null +++ b/day-003/deployment.yml @@ -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' diff --git a/day-003/namespace.yml b/day-003/namespace.yml new file mode 100644 index 0000000..18b1517 --- /dev/null +++ b/day-003/namespace.yml @@ -0,0 +1,5 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: application