Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/badtuxx/DescomplicandoKubernetes


https://github.com/badtuxx/DescomplicandoKubernetes

Last synced: 4 days ago
JSON representation

Awesome Lists containing this project

README

        


Discord



YouTube Channel Subscribers


YouTube Channel Views


Twitch Status


GitHub followers


Twitter Follow


Twitter Follow



Docker Pulls


Docker Pulls


Docker Pulls



GitHub Repo stars


GitHub Repo stars


GitHub Repo stars


GitHub Repo stars


GitHub Repo stars


GitHub Repo stars


GitHub Repo stars


GitHub Repo stars


GitHub Repo stars

# 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)