Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/badtuxx/DescomplicandoKubernetes
https://github.com/badtuxx/DescomplicandoKubernetes
Last synced: 4 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/badtuxx/DescomplicandoKubernetes
- Owner: badtuxx
- License: gpl-3.0
- Created: 2020-05-10T16:28:31.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-06-30T14:14:15.000Z (4 months ago)
- Last Synced: 2024-10-29T15:03:48.546Z (7 days ago)
- Language: Shell
- Size: 12.9 MB
- Stars: 3,826
- Watchers: 253
- Forks: 1,232
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starts - badtuxx/DescomplicandoKubernetes - (others)
README
# Descomplicando o Kubernetes
Devido a pandemia do Coronavirus (COVID-19, Jeferson Fernando liberou o acesso público a este repositório como forma de ajudar no combate a pandemia incentivando as pessoas a ficarem em casa adquirindo conhecimento e se aprimorando na profissão para poderem contribuir no local de trabalho ou mesmo se prepararem para novas oportunidades.
O conteúdo desse material é dividido em partes, as quais são dividas em "days" (day-1, day-2, day-3, etc) para facilitar o aprendizado. A ideia é o aluno focar no aprendizado por etapas e por esse motivo recomendamos que ele somente avance para a próxima parte quando estiver totalmente confortável com o conteúdo atual.
Neste material, você terá contato com conteúdos que abordam do nível iniciante ao avançado sobre Kubernetes. E agora que ele se tornou aberto, com a ajuda de todos vamos construir o maior e mais completo material sobre k8s do mundo.
Contamos com a sua ajuda para tornar este material ainda mais completo. Colabore! Para contribuir com melhorias no conteúdo, siga as instruções deste [tutorial](pt/CONTRIBUTING.md).
Veja os vídeos sobre Kubernetes, DevOps, Automação e outros assuntos relacionado à tecnologia nos canais da LINUXtips:
* [Canal da LINUXtips no Youtube](https://www.youtube.com/LINUXtips)
* [Canal da LINUXtips na Twitch](https://www.twitch.com/LINUXtips)Veja os treinamentos disponíveis da LINUXtips:
* [Site Oficial da LINUXtips](https://linuxtips.io)
Principais links da LINUXtips:
* [Todos os Links da LINUXtips](https://linktr.ee/LINUXtips)
### ACESSO AO LIVRO:
* [Descomplicando o Kubernetes](https://livro.descomplicandokubernetes.com.br)
# Descomplicando o Kubernetes
Esse material é parte do treinamento Descomplicando Kubernetes da LINUXtips. Ele foi desenhado para capacitar a pessoa estudante ou a pessoa profissional de TI a trabalhar com o Kubernetes em ambientes criticos.
O Treinamento é composto por material escrito, aulas gravadas em vídeo e aulas ao vivo. Durante o treinamento a pessoa será testada de forma prática, sendo necessário completar desafios reais para dar continuidade no treinamento.
O foco do treinamento é capacitar a pessoa para trabalhar com Kubernetes de maneira eficiente e totalmente preparada para trabalhar em ambientes críticos que utilizam containers.
Fique à vontade para aprender muito sobre Kubernetes utilizando esse livro!
## Conteúdo
DAY-1
- [DAY-1](pt/day-1/README.md#day-1)
- [O quê preciso saber antes de começar?](pt/day-1/README.md#o-quê-preciso-saber-antes-de-começar)
- [Inicio da aula do Day-1](pt/day-1/README.md#inicio-da-aula-do-day-1)
- [Qual a distro GNU/Linux que devo usar?](pt/day-1/README.md#qual-a-distro-gnu/linux-que-devo-usar?)
- [Alguns sites que devemos visitar](pt/day-1/README.md#alguns-sites-que-devemos-visitar)
- [O Container Engine](pt/day-1/README.md#o-container-engine)
- [OCI - Open Container Initiative](pt/day-1/README.md#oci---open-container-initiative)
- [O Container Runtime](pt/day-1/README.md#o-container-runtime)
- [O que é o Kubernetes?](pt/day-1/README.md#o-que-é-o-kubernetes?)
- [Arquitetura do k8s](pt/day-1/README.md#arquitetura-do-k8s)
- [Instalando e customizando o Kubectl](pt/day-1/README.md#instalando-e-customizando-o-kubectl)
- [Instalação do Kubectl no GNU/Linux](pt/day-1/README.md#instalação-do-kubectl-no-gnu/linux)
- [Instalação do Kubectl no MacOS](pt/day-1/README.md#instalação-do-kubectl-no-macos)
- [Instalação do Kubectl no Windows](pt/day-1/README.md#instalação-do-kubectl-no-windows)
- [Customizando o kubectl](pt/day-1/README.md#customizando-o-kubectl)
- [Auto-complete do kubectl](pt/day-1/README.md#auto-complete-do-kubectl)
- [Criando um alias para o kubectl](pt/day-1/README.md#criando-um-alias-para-o-kubectl)
- [Criando um cluster Kubernetes](pt/day-1/README.md#criando-um-cluster-kubernetes)
- [Criando o cluster em sua máquina local](pt/day-1/README.md#criando-o-cluster-em-sua-máquina-local)
- [Minikube](pt/day-1/README.md#minikube)
- [Requisitos básicos para o Minikube](pt/day-1/README.md#requisitos-básicos-para-o-minikube)
- [Instalação do Minikube no GNU/Linux](pt/day-1/README.md#instalação-do-minikube-no-gnu/linux)
- [Instalação do Minikube no MacOS](pt/day-1/README.md#instalação-do-minikube-no-macos)
- [Instalação do Minikube no Microsoft Windows](pt/day-1/README.md#instalação-do-minikube-no-microsoft-windows)
- [Iniciando, parando e excluindo o Minikube](pt/day-1/README.md#iniciando,-parando-e-excluindo-o-minikube)
- [Ver detalhes sobre o cluster](pt/day-1/README.md#ver-detalhes-sobre-o-cluster)
- [Descobrindo o endereço do Minikube](pt/day-1/README.md#descobrindo-o-endereço-do-minikube)
- [Acessando a máquina do Minikube via SSH](pt/day-1/README.md#acessando-a-máquina-do-minikube-via-ssh)
- [Dashboard do Minikube](pt/day-1/README.md#dashboard-do-minikube)
- [Logs do Minikube](pt/day-1/README.md#logs-do-minikube)
- [Remover o cluster](pt/day-1/README.md#remover-o-cluster)
- [Kind](pt/day-1/README.md#kind)
- [Instalação no GNU/Linux](pt/day-1/README.md#instalação-no-gnu/linux)
- [Instalação no MacOS](pt/day-1/README.md#instalação-no-macos)
- [Instalação no Windows](pt/day-1/README.md#instalação-no-windows)
- [Instalação no Windows via Chocolatey](pt/day-1/README.md#instalação-no-windows-via-chocolatey)
- [Criando um cluster com o Kind](pt/day-1/README.md#criando-um-cluster-com-o-kind)
- [Criando um cluster com múltiplos nós locais com o Kind](pt/day-1/README.md#criando-um-cluster-com-múltiplos-nós-locais-com-o-kind)
- [Primeiros passos no k8s](pt/day-1/README.md#primeiros-passos-no-k8s)
- [Verificando os namespaces e pods](pt/day-1/README.md#verificando-os-namespaces-e-pods)
- [Executando nosso primeiro pod no k8s](pt/day-1/README.md#executando-nosso-primeiro-pod-no-k8s)
- [Expondo o pod e criando um Service](pt/day-1/README.md#expondo-o-pod-e-criando-um-service)
- [Limpando tudo e indo para casa](pt/day-1/README.md#limpando-tudo-e-indo-para-casa)DAY-2
- [DAY-2](pt/day-2/README.md#day-2)
- [O que iremos ver hoje?](pt/day-2/README.md#o-que-iremos-ver-hoje)
- [O que é um Pod?](o-que-e-um-pod?)
- [Criando um Pod](pt/day-2/README.md#criando-um-pod)
- [Visualizando detalhes sobre os Pods](pt/day-2/README.md#visualizando-detalhes-sobre-os-pods)
- [Removendo um Pod](pt/day-2/README.md#removendo-um-pod)
- [Criando um Pod através de um arquivo YAML](pt/day-2/README.md#criando-um-pod-atraves-de-um-arquivo-yaml)
- [Visualizando os logs do Pod](pt/day-2/README.md#visualizando-os-logs-do-pod)
- [Criando um Pod com mais de um container](pt/day-2/README.md#criando-um-pod-com-mais-de-um-container)
- [Os comandos `attach` e `exec`](pt/day-2/README.md#os-comandos-attach-e-exec)
- [Criando um container com limites de memória e CPU](pt/day-2/README.md#criando-um-container-com-limites-de-memoria-e-cpu)
- [Adicionando um volume EmptyDir no Pod](pt/day-2/README.md#adicionando-um-volume-emptydir-no-pod)DAY-3
- [DAY-3](pt/day-3/README.md#day-3)
- [Inicio da aula do Day-3](pt/day-3/README.md#inicio-da-aula-do-day-3)
- [O que iremos ver hoje?](pt/day-3/README.md#o-que-iremos-ver-hoje)
- [O que é um Deployment?](pt/day-3/README.md#o-que-é-um-deployment)
- [Como criar um Deployment?](pt/day-3/README.md#como-criar-um-deployment)
- [O que cada parte do arquivo significa?](pt/day-3/README.md#o-que-cada-parte-do-arquivo-significa)
- [Como aplicar o Deployment?](pt/day-3/README.md#como-aplicar-o-deployment)
- [Como verificar os Pods que o Deployment está gerenciando?](pt/day-3/README.md#como-verificar-os-pods-que-o-deployment-está-gerenciando)
- [Como verificar o ReplicaSet que o Deployment está gerenciando?](pt/day-3/README.md#como-verificar-o-replicaset-que-o-deployment-está-gerenciando)
- [Como verificar os detalhes do Deployment?](pt/day-3/README.md#como-verificar-os-detalhes-do-deployment)
- [Como atualizar o Deployment?](pt/day-3/README.md#como-atualizar-o-deployment)
- [E qual é a estratégia de atualização padrão do Deployment?](pt/day-3/README.md#e-qual-é-a-estratégia-de-atualização-padrão-do-deployment)
- [As estratégias de atualização do Deployment](pt/day-3/README.md#as-estratégias-de-atualização-do-deployment)
- [Estratégia RollingUpdate](pt/day-3/README.md#estratégia-rollingupdate)
- [Estratégia Recreate](pt/day-3/README.md#estratégia-recreate)
- [Fazendo o rollback de uma atualização](pt/day-3/README.md#fazendo-o-rollback-de-uma-atualização)
- [Removendo um Deployment](pt/day-3/README.md#removendo-um-deployment)
- [Conclusão](pt/day-3/README.md#conclusão)DAY-4
- [DAY-4](pt/day-4/README.md)
- [Inicio da aula do Day-4](pt/day-4/README.md#inicio-da-aula-do-day-4)
- [O que iremos ver hoje?](pt/day-4/README.md#o-que-iremos-ver-hoje)
- [ReplicaSet](pt/day-4/README.md#replicaset)
- [O Deployment e o ReplicaSet](pt/day-4/README.md#o-deployment-e-o-replicaset)
- [Criando um ReplicaSet](pt/day-4/README.md#criando-um-replicaset)
- [Apagando o ReplicaSet](pt/day-4/README.md#apagando-o-replicaset)
- [O DaemonSet](pt/day-4/README.md#o-daemonset)
- [Criando um DaemonSet](pt/day-4/README.md#criando-um-daemonset)
- [Criando um DaemonSet utilizando o comando kubectl create](pt/day-4/README.md#criando-um-daemonset-utilizando-o-comando-kubectl-create)
- [Aumentando um node no cluster](pt/day-4/README.md#aumentando-um-node-no-cluster)
- [Removendo um DaemonSet](pt/day-4/README.md#removendo-um-daemonset)
- [As Probes do Kubernetes](pt/day-4/README.md#as-probes-do-kubernetes)
- [O que são as Probes?](pt/day-4/README.md#o-que-sao-as-probes)
- [Liveness Probe](pt/day-4/README.md#liveness-probe)
- [Readiness Probe](pt/day-4/README.md#readiness-probe)
- [Startup Probe](pt/day-4/README.md#startup-probe)
- [A sua lição de casa](pt/day-4/README.md#a-sua-licao-de-casa)
- [Final do Day-4](pt/day-4/README.md#final-do-day-4)DAY-5
- [DAY-5](pt/day-5/README.md#day-5)
- [Conteúdo do Day-5](pt/day-5/README.md#conteúdo-do-day-5)
- [Inicio da aula do Day-5](pt/day-5/README.md#inicio-da-aula-do-day-5)
- [O que iremos ver hoje?](pt/day-5/README.md#o-que-iremos-ver-hoje)
- [Instalação de um cluster Kubernetes](pt/day-5/README.md#instalação-de-um-cluster-kubernetes)
- [O que é um cluster Kubernetes?](pt/day-5/README.md#o-que-é-um-cluster-kubernetes)
- [Formas de instalar o Kubernetes](pt/day-5/README.md#formas-de-instalar-o-kubernetes)
- [Criando um cluster Kubernetes com o kubeadm](pt/day-5/README.md#criando-um-cluster-kubernetes-com-o-kubeadm)
- [Instalando o kubeadm](pt/day-5/README.md#instalando-o-kubeadm)
- [Desativando o uso do swap no sistema](pt/day-5/README.md#desativando-o-uso-do-swap-no-sistema)
- [Carregando os módulos do kernel](pt/day-5/README.md#carregando-os-módulos-do-kernel)
- [Configurando parâmetros do sistema](pt/day-5/README.md#configurando-parâmetros-do-sistema)
- [Instalando os pacotes do Kubernetes](pt/day-5/README.md#instalando-os-pacotes-do-kubernetes)
- [Instalando o Docker e o containerd](pt/day-5/README.md#instalando-o-docker-e-o-containerd)
- [Configurando o containerd](pt/day-5/README.md#configurando-o-containerd)
- [Habilitando o serviço do kubelet](pt/day-5/README.md#habilitando-o-serviço-do-kubelet)
- [Configurando as portas](pt/day-5/README.md#configurando-as-portas)
- [Iniciando o cluster](pt/day-5/README.md#iniciando-o-cluster)
- [Entendendo o arquivo admin.conf](pt/day-5/README.md#entendendo-o-arquivo-adminconf)
- [Instalando o Weave Net](pt/day-5/README.md#instalando-o-weave-net)
- [O que é o CNI?](pt/day-5/README.md#o-que-é-o-cni)
- [Visualizando detalhes dos nodes](pt/day-5/README.md#visualizando-detalhes-dos-nodes)
- [A sua lição de casa](pt/day-5/README.md#a-sua-lição-de-casa)
- [Final do Day-5](pt/day-5/README.md#final-do-day-5)DAY-6
- [DAY-6](pt/day-6/README.md#day-6)
- [Conteúdo do Day-6](pt/day-6/README.md#conteúdo-do-day-6)
- [Inicio da aula do Day-6](pt/day-6/README.md#inicio-da-aula-do-day-6)
- [O que iremos ver hoje?](pt/day-6/README.md#o-que-iremos-ver-hoje)
- [O que são volumes?](pt/day-6/README.md#o-que-são-volumes)
- [EmpytDir](pt/day-6/README.md#empytdir)
- [Storage Class](pt/day-6/README.md#storage-class)
- [PV - Persistent Volume](pt/day-6/README.md#pv---persistent-volume)
- [PVC - Persistent Volume Claim](pt/day-6/README.md#pvc---persistent-volume-claim)
- [A sua lição de casa](pt/day-6/README.md#a-sua-lição-de-casa)
- [Final do Day-6](pt/day-6/README.md#final-do-day-6)DAY-7
- [DAY-7](pt/day-7/README.md#day-7)
- [Conteúdo do Day-7](pt/day-7/README.md#conteúdo-do-day-7)
- [O que iremos ver hoje?](pt/day-7/README.md#o-que-iremos-ver-hoje)
- [O que é um StatefulSet?](pt/day-7/README.md#o-que-é-um-statefulset)
- [Quando usar StatefulSets?](pt/day-7/README.md#quando-usar-statefulsets)
- [E como ele funciona?](pt/day-7/README.md#e-como-ele-funciona)
- [O StatefulSet e os volumes persistentes](pt/day-7/README.md#o-statefulset-e-os-volumes-persistentes)
- [O StatefulSet e o Headless Service](pt/day-7/README.md#o-statefulset-e-o-headless-service)
- [Criando um StatefulSet](pt/day-7/README.md#criando-um-statefulset)
- [Excluindo um StatefulSet](pt/day-7/README.md#excluindo-um-statefulset)
- [Excluindo um Headless Service](pt/day-7/README.md#excluindo-um-headless-service)
- [Excluindo um PVC](pt/day-7/README.md#excluindo-um-pvc)
- [Services](pt/day-7/README.md#services)
- [Tipos de Services](pt/day-7/README.md#tipos-de-services)
- [Como os Services funcionam](pt/day-7/README.md#como-os-services-funcionam)
- [Os Services e os Endpoints](pt/day-7/README.md#os-services-e-os-endpoints)
- [Criando um Service](pt/day-7/README.md#criando-um-service)
- [ClusterIP](pt/day-7/README.md#clusterip)
- [ClusterIP](pt/day-7/README.md#clusterip-1)
- [LoadBalancer](pt/day-7/README.md#loadbalancer)
- [ExternalName](pt/day-7/README.md#externalname)
- [Verificando os Services](pt/day-7/README.md#verificando-os-services)
- [Verificando os Endpoints](pt/day-7/README.md#verificando-os-endpoints)
- [Removendo um Service](pt/day-7/README.md#removendo-um-service)
- [A sua lição de casa](pt/day-7/README.md#a-sua-lição-de-casa)
- [Final do Day-7](pt/day-7/README.md#final-do-day-7)DAY-8
- [Descomplicando o Kubernetes](pt/day-8/README.md#descomplicando-o-kubernetes)
- [DAY-8](pt/day-8/README.md#day-8)
- [Conteúdo do Day-8](pt/day-8/README.md#conteúdo-do-day-8)
- [O que iremos ver hoje?](pt/day-8/README.md#o-que-iremos-ver-hoje)
- [O que são Secrets?](pt/day-8/README.md#o-que-são-secrets)
- [Como os Secrets funcionam](pt/day-8/README.md#como-os-secrets-funcionam)
- [Tipos de Secrets](pt/day-8/README.md#tipos-de-secrets)
- [Antes de criar um Secret, o Base64](pt/day-8/README.md#antes-de-criar-um-secret-o-base64)
- [Criando nosso primeiro Secret](pt/day-8/README.md#criando-nosso-primeiro-secret)
- [Usando o nosso primeiro Secret](pt/day-8/README.md#usando-o-nosso-primeiro-secret)
- [Criando um Secret para armazenar credenciais Docker](pt/day-8/README.md#criando-um-secret-para-armazenar-credenciais-docker)
- [Criando um Secret TLS](pt/day-8/README.md#criando-um-secret-tls)
- [ConfigMaps](pt/day-8/README.md#configmaps)
- [Final do Day-8](pt/day-8/README.md#final-do-day-8)
-DAY-9
- [Descomplicando o Kubernetes](pt/day-9/README.md#descomplicando-o-kubernetes)
- [DAY-9: Descomplicando o Ingress no Kubernetes](pt/day-9/README.md#day-9-descomplicando-o-ingress-no-kubernetes)
- [Conteúdo do Day-9](pt/day-9/README.md#conteúdo-do-day-9)
- [O que iremos ver hoje?](pt/day-9/README.md#o-que-iremos-ver-hoje)
- [Conteúdo do Day-9](pt/day-9/README.md#conteúdo-do-day-9-1)
- [O Que é o Ingress?](pt/day-9/README.md#o-que-é-o-ingress)
- [Teoria: O que é Ingress?](pt/day-9/README.md#teoria-o-que-é-ingress)
- [Prática: Mãos à Obra](pt/day-9/README.md#prática-mãos-à-obra)
- [Criando um Serviço Simples](pt/day-9/README.md#criando-um-serviço-simples)
- [Seção 2: Componentes do Ingress](pt/day-9/README.md#seção-2-componentes-do-ingress)
- [Introdução](pt/day-9/README.md#introdução)
- [Teoria: Componentes Chave](pt/day-9/README.md#teoria-componentes-chave)
- [Ingress Controller](pt/day-9/README.md#ingress-controller)
- [Ingress Resources](pt/day-9/README.md#ingress-resources)
- [Annotations e Customizations](pt/day-9/README.md#annotations-e-customizations)
- [Prática: Montando o Quebra-Cabeça](pt/day-9/README.md#prática-montando-o-quebra-cabeça)
- [Instalando um Nginx Ingress Controller](pt/day-9/README.md#instalando-um-nginx-ingress-controller)
- [Instalando o Nginx Ingress Controller no Kind](pt/day-9/README.md#instalando-o-nginx-ingress-controller-no-kind)
- [Introdução](pt/day-9/README.md#introdução-1)
- [Criando o Cluster com Configurações Especiais](pt/day-9/README.md#criando-o-cluster-com-configurações-especiais)
- [Instalando um Ingress Controller](pt/day-9/README.md#instalando-um-ingress-controller)
- [Criando um Recurso de Ingress](pt/day-9/README.md#criando-um-recurso-de-ingress)
- [Annotations para Customização](pt/day-9/README.md#annotations-para-customização)
- [Seção 3: Configurando Rotas](pt/day-9/README.md#seção-3-configurando-rotas)
- [Introdução](pt/day-9/README.md#introdução-2)
- [Teoria: O Que São Rotas?](pt/day-9/README.md#teoria-o-que-são-rotas)
- [Prática: Configurando Rotas Simples](pt/day-9/README.md#prática-configurando-rotas-simples)
- [Prática: Configurando Rotas Avançadas](pt/day-9/README.md#prática-configurando-rotas-avançadas)DAY-10
- [Descomplicando o Kubernetes](pt/day-10/README.md#descomplicando-o-kubernetes)
- [DAY-10: Descomplicando Ingress com TLS, Labels, Annotations e o Cert-manager](pt/day-10/README.md#day-10-descomplicando-ingress-com-tls-labels-annotations-e-o-cert-manager)
- [Conteúdo do Day-10](pt/day-10/README.md#conteúdo-do-day-10)
- [O que iremos ver hoje?](pt/day-10/README.md#o-que-iremos-ver-hoje)
- [O que é o Cert-Manager?](pt/day-10/README.md#o-que-é-o-cert-manager)
- [Instalando e configurando o Cert-Manager](pt/day-10/README.md#instalando-e-configurando-o-cert-manager)
- [Configurando o Ingress para usar o Cert-Manager e ter o HTTPS](pt/day-10/README.md#configurando-o-ingress-para-usar-o-cert-manager-e-ter-o-https)
- [O que são os Annotations e as Labels no Kubernetes?](pt/day-10/README.md#o-que-são-os-annotations-e-as-labels-no-kubernetes)
- [Explorando um pouco mais as Labels](pt/day-10/README.md#explorando-um-pouco-mais-as-labels)
- [Explorando as Annotations no Kubernetes](pt/day-10/README.md#explorando-as-annotations-no-kubernetes)
- [Adicionando Autenticação ao Ingress](pt/day-10/README.md#adicionando-autenticação-ao-ingress)
- [Configurando Affinity Cookie no Ingress](pt/day-10/README.md#configurando-affinity-cookie-no-ingress)
- [Configurando Upsream Hashing no Ingress](pt/day-10/README.md#configurando-upsream-hashing-no-ingress)
- [Canary Deployments com o Ingress no Kubernetes](pt/day-10/README.md#canary-deployments-com-o-ingress-no-kubernetes)
- [Limitando requisições as nossas aplicações com o Ingress](pt/day-10/README.md#limitando-requisições-as-nossas-aplicações-com-o-ingress)
- [Final do Day-10](pt/day-10/README.md#final-do-day-10)DAY-11
- [Descomplicando o Kubernetes](pt/day-11/README.md#descomplicando-o-kubernetes)
- [DAY-11](pt/day-11/README.md#day-11)
- [Conteúdo do Day-11](pt/day-11/README.md#conteúdo-do-day-11)
- [Início da aula do Day-11](pt/day-11/README.md#início-da-aula-do-day-11)
- [O que iremos ver hoje?](pt/day-11/README.md#o-que-iremos-ver-hoje)
- [Introdução ao Horizontal Pod Autoscaler (HPA)](pt/day-11/README.md#introdução-ao-horizontal-pod-autoscaler-hpa)
- [Como o HPA Funciona?](pt/day-11/README.md#como-o-hpa-funciona)
- [Introdução ao Metrics Server](pt/day-11/README.md#introdução-ao-metrics-server)
- [Por que o Metrics Server é importante para o HPA?](pt/day-11/README.md#por-que-o-metrics-server-é-importante-para-o-hpa)
- [Instalando o Metrics Server](pt/day-11/README.md#instalando-o-metrics-server)
- [No Amazon EKS e na maioria dos clusters Kubernetes](pt/day-11/README.md#no-amazon-eks-e-na-maioria-dos-clusters-kubernetes)
- [No Minikube:](pt/day-11/README.md#no-minikube)
- [No KinD (Kubernetes in Docker):](pt/day-11/README.md#no-kind-kubernetes-in-docker)
- [Verificando a Instalação do Metrics Server](pt/day-11/README.md#verificando-a-instalação-do-metrics-server)
- [Obtendo Métricas](pt/day-11/README.md#obtendo-métricas)
- [Criando um HPA](pt/day-11/README.md#criando-um-hpa)
- [Exemplos Práticos com HPA](pt/day-11/README.md#exemplos-práticos-com-hpa)
- [Autoscaling com base na utilização de CPU](pt/day-11/README.md#autoscaling-com-base-na-utilização-de-cpu)
- [Autoscaling com base na utilização de Memória](pt/day-11/README.md#autoscaling-com-base-na-utilização-de-memória)
- [Configuração Avançada de HPA: Definindo Comportamento de Escalonamento](pt/day-11/README.md#configuração-avançada-de-hpa-definindo-comportamento-de-escalonamento)
- [ContainerResource](pt/day-11/README.md#containerresource)
- [Detalhes do Algoritmo de Escalonamento](pt/day-11/README.md#detalhes-do-algoritmo-de-escalonamento)
- [Configurações Avançadas e Uso Prático](pt/day-11/README.md#configurações-avançadas-e-uso-prático)
- [Integrando HPA com Prometheus para Métricas Customizadas](pt/day-11/README.md#integrando-hpa-com-prometheus-para-métricas-customizadas)
- [A sua lição de casa](pt/day-11/README.md#a-sua-lição-de-casa)
- [Final do Day-11](pt/day-11/README.md#final-do-day-11)DAY-12
- [Descomplicando o Kubernetes](pt/day-12/README.md#descomplicando-o-kubernetes)
- [DAY-12: Dominando Taints e Tolerations](pt/day-12/README.md#day-12-dominando-taints-e-tolerations)
- [Conteúdo do Day-12](pt/day-12/README.md#conteúdo-do-day-12)
- [Introdução](pt/day-12/README.md#introdução)
- [O que são Taints e Tolerations?](pt/day-12/README.md#o-que-são-taints-e-tolerations)
- [Por que usar Taints e Tolerations?](pt/day-12/README.md#por-que-usar-taints-e-tolerations)
- [Anatomia de um Taint](pt/day-12/README.md#anatomia-de-um-taint)
- [Anatomia de uma Toleration](pt/day-12/README.md#anatomia-de-uma-toleration)
- [Aplicando Taints](pt/day-12/README.md#aplicando-taints)
- [Configurando Tolerations](pt/day-12/README.md#configurando-tolerations)
- [Cenários de Uso](pt/day-12/README.md#cenários-de-uso)
- [Isolamento de Workloads](pt/day-12/README.md#isolamento-de-workloads)
- [Nodes especializados](pt/day-12/README.md#nodes-especializados)
- [Evacuação e Manutenção de Nodes](pt/day-12/README.md#evacuação-e-manutenção-de-nodes)
- [Combinando Taints e Tolerations com Affinity Rules](pt/day-12/README.md#combinando-taints-e-tolerations-com-affinity-rules)
- [Exemplos Práticos](pt/day-12/README.md#exemplos-práticos)
- [Exemplo 1: Isolamento de Workloads](pt/day-12/README.md#exemplo-1-isolamento-de-workloads)
- [Exemplo 2: Utilizando Hardware Especializado](pt/day-12/README.md#exemplo-2-utilizando-hardware-especializado)
- [Exemplo 3: Manutenção de Nodes](pt/day-12/README.md#exemplo-3-manutenção-de-nodes)
- [O que são Selectors?](pt/day-12/README.md#o-que-são-selectors)
- [Tipos de Selectors](pt/day-12/README.md#tipos-de-selectors)
- [Equality-based Selectors](pt/day-12/README.md#equality-based-selectors)
- [Set-based Selectors](pt/day-12/README.md#set-based-selectors)
- [Selectors em Ação](pt/day-12/README.md#selectors-em-ação)
- [Em Services](pt/day-12/README.md#em-services)
- [Em ReplicaSets](pt/day-12/README.md#em-replicasets)
- [Em Jobs e CronJobs](pt/day-12/README.md#em-jobs-e-cronjobs)
- [Selectors e Namespaces](pt/day-12/README.md#selectors-e-namespaces)
- [Cenários de Uso](pt/day-12/README.md#cenários-de-uso-1)
- [Roteamento de Tráfego](pt/day-12/README.md#roteamento-de-tráfego)
- [Scaling Horizontal](pt/day-12/README.md#scaling-horizontal)
- [Desastre e Recuperação](pt/day-12/README.md#desastre-e-recuperação)
- [Dicas e Armadilhas](pt/day-12/README.md#dicas-e-armadilhas)
- [Exemplos Práticos](pt/day-12/README.md#exemplos-práticos-1)
- [Exemplo 1: Selector em um Service](pt/day-12/README.md#exemplo-1-selector-em-um-service)
- [Exemplo 2: Selector em um ReplicaSet](pt/day-12/README.md#exemplo-2-selector-em-um-replicaset)
- [Exemplo 3: Selectors Avançados](pt/day-12/README.md#exemplo-3-selectors-avançados)DAY-13
- [Descomplicando o Kubernetes](pt/day-13/README.md#descomplicando-o-kubernetes)
- [DAY-13: Descomplicando Kyverno e as Policies no Kubernetes](pt/day-13/README.md#day-13-descomplicando-kyverno-e-as-policies-no-kubernetes)
- [Conteúdo do Day-13](pt/day-13/README.md#conteúdo-do-day-13)
- [O que iremos ver hoje?](pt/day-13/README.md#o-que-iremos-ver-hoje)
- [Inicio do Day-13](pt/day-13/README.md#inicio-do-day-13)
- [Introdução ao Kyverno](pt/day-13/README.md#introdução-ao-kyverno)
- [Instalando o Kyverno](pt/day-13/README.md#instalando-o-kyverno)
- [Utilizando Helm](pt/day-13/README.md#utilizando-helm)
- [Verificando a Instalação](pt/day-13/README.md#verificando-a-instalação)
- [Criando a nossa primeira Policy](pt/day-13/README.md#criando-a-nossa-primeira-policy)
- [Mais exemplos de Policies](pt/day-13/README.md#mais-exemplos-de-policies)
- [Exemplo de Política: Adicionar Label ao Namespace](pt/day-13/README.md#exemplo-de-política-adicionar-label-ao-namespace)
- [Detalhes da Política](pt/day-13/README.md#detalhes-da-política)
- [Arquivo de Política: `add-label-namespace.yaml`](pt/day-13/README.md#arquivo-de-política-add-label-namespaceyaml)
- [Utilização da Política](pt/day-13/README.md#utilização-da-política)
- [Exemplo de Política: Proibir Usuário Root](pt/day-13/README.md#exemplo-de-política-proibir-usuário-root)
- [Detalhes da Política](pt/day-13/README.md#detalhes-da-política-1)
- [Arquivo de Política: `disallow-root-user.yaml`](pt/day-13/README.md#arquivo-de-política-disallow-root-useryaml)
- [Implementação e Efeito](pt/day-13/README.md#implementação-e-efeito)
- [Exemplo de Política: Gerar ConfigMap para Namespace](pt/day-13/README.md#exemplo-de-política-gerar-configmap-para-namespace)
- [Detalhes da Política](pt/day-13/README.md#detalhes-da-política-2)
- [Arquivo de Política: `generate-configmap-for-namespace.yaml`](pt/day-13/README.md#arquivo-de-política-generate-configmap-for-namespaceyaml)
- [Implementação e Utilidade](pt/day-13/README.md#implementação-e-utilidade)
- [Exemplo de Política: Permitir Apenas Repositórios Confiáveis](pt/day-13/README.md#exemplo-de-política-permitir-apenas-repositórios-confiáveis)
- [Detalhes da Política](pt/day-13/README.md#detalhes-da-política-3)
- [Arquivo de Política: `registry-allowed.yaml`](pt/day-13/README.md#arquivo-de-política-registry-allowedyaml)
- [Implementação e Impacto](pt/day-13/README.md#implementação-e-impacto)
- [Exemplo de Política: Require Probes](pt/day-13/README.md#exemplo-de-política-require-probes)
- [Detalhes da Política](pt/day-13/README.md#detalhes-da-política-4)
- [Arquivo de Política: `require-probes.yaml`](pt/day-13/README.md#arquivo-de-política-require-probesyaml)
- [Implementação e Impacto](pt/day-13/README.md#implementação-e-impacto-1)
- [Exemplo de Política: Usando o Exclude](pt/day-13/README.md#exemplo-de-política-usando-o-exclude)
- [Detalhes da Política](pt/day-13/README.md#detalhes-da-política-5)
- [Arquivo de Política](pt/day-13/README.md#arquivo-de-política)
- [Implementação e Efeitos](pt/day-13/README.md#implementação-e-efeitos)
- [Conclusão](pt/day-13/README.md#conclusão)
- [Pontos-Chave Aprendidos](pt/day-13/README.md#pontos-chave-aprendidos)DAY-14
- [Descomplicando o Kubernetes](pt/day-14/README.md#descomplicando-o-kubernetes)
- [DAY-14: Descomplicando Network Policies no Kubernetes](pt/day-14/README.md#day-14-descomplicando-network-policies-no-kubernetes)
- [Conteúdo do Day-14](pt/day-14/README.md#conteúdo-do-day-14)
- [O que iremos ver hoje?](pt/day-14/README.md#o-que-iremos-ver-hoje)
- [O que são Network Policies?](pt/day-14/README.md#o-que-são-network-policies)
- [Para que Servem as Network Policies?](pt/day-14/README.md#para-que-servem-as-network-policies)
- [Conceitos Fundamentais: Ingress e Egress](pt/day-14/README.md#conceitos-fundamentais-ingress-e-egress)
- [Como Funcionam as Network Policies?](pt/day-14/README.md#como-funcionam-as-network-policies)
- [Ainda não é padrão](pt/day-14/README.md#ainda-não-é-padrão)
- [Criando um Cluster EKS com Network Policies](pt/day-14/README.md#criando-um-cluster-eks-com-network-policies)
- [Instalando o EKSCTL](pt/day-14/README.md#instalando-o-eksctl)
- [Instalando o AWS CLI](pt/day-14/README.md#instalando-o-aws-cli)
- [Criando o Cluster EKS](pt/day-14/README.md#criando-o-cluster-eks)
- [Instalando o AWS VPC CNI Plugin](pt/day-14/README.md#instalando-o-aws-vpc-cni-plugin)
- [Habilitando o Network Policy nas Configurações Avançadas do CNI](pt/day-14/README.md#habilitando-o-network-policy-nas-configurações-avançadas-do-cni)
- [Instalando o Nginx Ingress Controller](pt/day-14/README.md#instalando-o-nginx-ingress-controller)
- [Instalando um Nginx Ingress Controller](pt/day-14/README.md#instalando-um-nginx-ingress-controller)
- [Nossa Aplicação de Exemplo](pt/day-14/README.md#nossa-aplicação-de-exemplo)
- [Criando Regras de Network Policy](pt/day-14/README.md#criando-regras-de-network-policy)
- [Ingress](pt/day-14/README.md#ingress)
- [Egress](pt/day-14/README.md#egress)DAY-15
- [Descomplicando o Kubernetes](pt/day-15/README.md#descomplicando-o-kubernetes)
- [DAY-15: Descomplicando RBAC e controle de acesso no Kubernetes](pt/day-15/README.md#day-15-descomplicando-rbac-e-controle-de-acesso-no-kubernetes)
- [Conteúdo do Day-15](pt/day-15/README.md#conteúdo-do-day-15)
- [O que iremos ver hoje?](pt/day-15/README.md#o-que-iremos-ver-hoje)
- [RBAC](pt/day-15/README.md#rbac)
- [O que é RBAC?](pt/day-15/README.md#o-que-é-rbac)
- [Primeiro exemplo de RBAC](pt/day-15/README.md#primeiro-exemplo-de-rbac)
- [Criando um Usuário para acesso ao cluster](pt/day-15/README.md#criando-um-usuário-para-acesso-ao-cluster)
- [Criando um Role para o nosso usuário](pt/day-15/README.md#criando-um-role-para-o-nosso-usuário)
- [apiGroups](pt/day-15/README.md#apigroups)
- [Recursos](pt/day-15/README.md#recursos)
- [Verbos](pt/day-15/README.md#verbos)
- [Criando a Role](pt/day-15/README.md#criando-a-role)
- [Criando um RoleBinding para o nosso usuário](pt/day-15/README.md#criando-um-rolebinding-para-o-nosso-usuário)
- [Adicionando o certificado do usuário no kubeconfig](pt/day-15/README.md#adicionando-o-certificado-do-usuário-no-kubeconfig)
- [Acessando o cluster com o novo usuário](pt/day-15/README.md#acessando-o-cluster-com-o-novo-usuário)
- [ClusterRole e ClusterRoleBinding](pt/day-15/README.md#clusterrole-e-clusterrolebinding)
- [ClusterRole e ClusterRoleBinding para o usuário admin](pt/day-15/README.md#clusterrole-e-clusterrolebinding-para-o-usuário-admin)
- [Removendo o usuário](pt/day-15/README.md#removendo-o-usuário)
- [Utilizando Tokens para Service Accounts](pt/day-15/README.md#utilizando-tokens-para-service-accounts)
- [Criando um Service Account](pt/day-15/README.md#criando-um-service-account)
- [Criando um Secret para o Service Account](pt/day-15/README.md#criando-um-secret-para-o-service-account)
- [Utilizando o Token do Service Account](pt/day-15/README.md#utilizando-o-token-do-service-account)
- [Removendo o Service Account](pt/day-15/README.md#removendo-o-service-account)
- [Final do Day-15](pt/day-15/README.md#final-do-day-15)DAY-16
- [Descomplicando o Kubernetes](pt/day-16/README.md#descomplicando-o-kubernetes)
- [DAY-16: Descomplicando Helm](pt/day-16/README.md#day-16-descomplicando-helm)
- [Conteúdo do Day-16](pt/day-16/README.md#conteúdo-do-day-16)
- [O que iremos ver hoje?](pt/day-16/README.md#o-que-iremos-ver-hoje)
- [O que é o Helm?](pt/day-16/README.md#o-que-é-o-helm)
- [O que é um Chart?](pt/day-16/README.md#o-que-é-um-chart)
- [Criando o nosso primeiro Chart](pt/day-16/README.md#criando-o-nosso-primeiro-chart)
- [Instalando o nosso Chart](pt/day-16/README.md#instalando-o-nosso-chart)
- [Atualizando o nosso Chart](pt/day-16/README.md#atualizando-o-nosso-chart)
- [Utilizando `range` e o `if` no Helm](pt/day-16/README.md#utilizando-range--e-o-if-no-helm)
- [Utilizando `default`, `toYaml` e `toJson` no Helm](pt/day-16/README.md#utilizando-default-toyaml-e-tojson-no-helm)
- [O Que São Helpers no Helm?](pt/day-16/README.md#o-que-são-helpers-no-helm)
- [Por Que Usar Helpers?](pt/day-16/README.md#por-que-usar-helpers)
- [Criando o Nosso Primeiro Helper](pt/day-16/README.md#criando-o-nosso-primeiro-helper)
- [Helpers Avançados: Exemplos Práticos](pt/day-16/README.md#helpers-avançados-exemplos-práticos)
- [Exemplo 1: Controlando a Complexidade](pt/day-16/README.md#exemplo-1-controlando-a-complexidade)
- [Exemplo 2: Personalização Baseada em Ambiente](pt/day-16/README.md#exemplo-2-personalização-baseada-em-ambiente)
- [Melhores Práticas ao Usar Helpers](pt/day-16/README.md#melhores-práticas-ao-usar-helpers)
- [Criando o `_helpers.tpl` da nossa App](pt/day-16/README.md#criando-o-_helperstpl-da-nossa-app)
- [Passo 1: Criando o arquivo `_helpers.tpl`](pt/day-16/README.md#passo-1-criando-o-arquivo-_helperstpl)
- [Labels](pt/day-16/README.md#labels)
- [Resources](pt/day-16/README.md#resources)
- [Ports](pt/day-16/README.md#ports)
- [Passo 2: Refatorando `Deployments.yaml` e `Services.yaml`](pt/day-16/README.md#passo-2-refatorando-deploymentsyaml-e-servicesyaml)
- [O nosso `Deployments.yaml`](pt/day-16/README.md#o-nosso-deploymentsyaml)
- [O nosso `Services.yaml`](pt/day-16/README.md#o-nosso-servicesyaml)
- [Passo 3: Refatorando os ConfigMaps](pt/day-16/README.md#passo-3-refatorando-os-configmaps)
- [Atualizando o `_helpers.tpl`](pt/day-16/README.md#atualizando-o-_helperstpl)
- [Refatorando `config-map-dp.yaml`](pt/day-16/README.md#refatorando-config-map-dpyaml)
- [Refatorando `config-map-obs.yaml`](pt/day-16/README.md#refatorando-config-map-obsyaml)
- [Criando um repositório de Helm Charts](pt/day-16/README.md#criando-um-repositório-de-helm-charts)
- [Criando o repositório no Github](pt/day-16/README.md#criando-o-repositório-no-github)
- [Inicializando o repositório](pt/day-16/README.md#inicializando-o-repositório)
- [Configurando o GitHub Pages](pt/day-16/README.md#configurando-o-github-pages)
- [Utilizando o nosso repositório de Helm Charts](pt/day-16/README.md#utilizando-o-nosso-repositório-de-helm-charts)
- [O que vimos no dia de hoje](pt/day-16/README.md#o-que-vimos-no-dia-de-hoje)