Kubernetes: Do Básico ao Avançado
What you'll learn
- Compreender a arquitetura do control e data plane do Kubernetes
- Planejar um cluster de alta disponibilidade
- Criar um cluster com kind, vagrant (kubeadm) e kubespray
- Gerenciar a base de dados etcd usando etcdctl
- Utilizar a estrutura de YAML
- Isolar recursos por namespaces
- Utilizar init-containers, multi-containers e static pods
- Personalizar o ciclo de vida de um pod
- Gerenciar e personalizar diferentes tipos de workloads como deployments, statefulsets e daemonsets
- Definir recursos computacionais para seu workload (requests & limits)
- Definir readiness e liveness probes (healthchecks) para sua aplicação
- Garantir a disponibilidade da aplicação com Pod Disruption Budgets
- Utilizar Jobs e CronJobs
- Entender todos os tipos de Services (ClusterIP, NodePort, LoadBalancer, ExternalName)
- Entender como funciona o DNS dentro do Kubernetes (Service Discovery)
- Entender por baixo dos panos como uma requisição chega em um pod
- Debugar o kube-proxy e seu roteamento/balanceamento na camada de Services via IPTables
- Deploy de ferramentas externas como MetalLB para LoadBalancer em clusters on-premises
- Diminuir a latência na camada de Services com TrafficPolicies
- Orquestrar manualmente deploys canary e blue-green sem ferramentas externas
- Expor sua aplicação via Ingress
- Utilizar múltiplos Ingress Controllers no mesmo cluster com Ingress Classes
- Deploy de objetos externos com ConfigMaps e Secrets
- Persistir dados no ecosistema do Kubernetes
- Utilizar static e dynamic volumes
- Entender conceitos como Access Modes, Reclaim Policies e Projected Volumes
- Como escalar aplicações dentro do Kubernetes
- Comparar escala horizontal x escala vertical
- Entender por baixo dos panos como o HPA realiza o cálculo de scaling para decidir quando e quantas réplicas utilizar
- Debugar queries DNS do CoreDNS
- Configurar DNS externo no cluster
- Entender e debugar o impacto do ndots para o cluster
- Configurar permissionamento no Kubernetes usando RBAC
- Dar acesso ao cluster para um usuário usando certificados TLS para autenticação
- Upgrade do cluster Kubernetes usando kubeadm
- Aplicar estratégias de scheduling como NodeSelector, NodeAffinity e PodAffinity
- Aumentar a disponibilidade da sua aplicação com Pod Topology Spread Constraints
- Compreender e utilizar Taints & Tolerations
- Analisar problemas de BackOff
- Analisar problemas de Nodes em status NotReady
- Utilizar estratégias de troubleshooting com pods e sidecars
Requirements
- Conhecimentos em Linux
- Conhecimentos em Docker
- Fundamentos de Redes de Computadores
Description
Deixa eu te fazer uma pergunta:
Você já tentou estudar sobre Kubernetes mas se sentiu perdido devido a complexidade do assunto? Aquela sensação de "acho que entendi", mas chega na hora de realmente utilizar e você nem sabe por onde começar?
Se você respondeu sim para a pergunta acima, então eu tenho a solução para você. Esse curso foi projetado para te entregar uma base sólida sobre Kubernetes. Este treinamento foi pensado para utilizar somente Kubernetes on-premises, que possa ser instalado na sua própria máquina, e isso tem algumas vantagens:
Sem custos de Cloud Computing
Aprender a gerenciar o Control Plane
Total controle sobre a infraestrutura
Baseado nisso, deixa eu te apresentar a ementa desse treinamento:
Criação do Cluster: Vamos aprender sobre a arquitetura do Kubernetes e criar o cluster de 3 formas diferentes (kind, vagrant e kubespray). Além disso temos algumas aulas extras sobre kubeconfig, comandos gerais, debug de comunicação e uso do etcd.
YAML: Compreender a estrutura do YAML e enviar para o API server usando kubectl. Além disso, vou dar dicas para o uso no dia a dia que vai te deixar mais produtivo.
Namespaces: Isolar aplicações em namespaces.
Pods: A estrutura mais básica do Kubernetes. Vamos estudar vários recursos como init containers, multi containers, static pods, lifecycle, e não menos importante, troubleshooting.
Deployments: Vamos explorar tudo sobre deployments como: labels e selectors, controlar rollouts, otimização do deployment, escalar, definir recursos computacionais, healthchecks (probes) e variáveis ambientes.
DaemonSets: Veremos o caso de uso para DaemonSets comparado a Deployments.
StatefulSets: Entender a diferença de stateless e stateful, além de quando utilizar StatefulSets.
Jobs e CronJobs: Todos os workloads acima são para aplicações long-running. Aqui vamos entender como utilizar aplicações de única execução no Kubernetes.
Services: Entender todos os tipos de services para expor uma aplicação e balancear a carga. Além disso, vamos debugar a nível de regras de IPTables para entender como o kube-proxy gerencia essas regras.
Ingress: Expor a aplicação via Ingress, utilizando o NGINX como nosso controller.
ConfigMap & Secrets: Externalizar arquivos de configurações e informações sensitivas em objetos do tipo ConfigMaps e Secrets.
Storage: Containers foram feitos para poderem ser deletados e recriados facilmente. Nesse módulo vamos aprender a persistir dados usando StorageClasses, PVs e PVCs.
Autoscaling: Escalar horizontalmente os pods aumentando a quantidade de réplicas. Vamos compreender em detalhes a fórmula de cálculo que o Kubernetes utiliza para tomada de decisão. Além vamos testar a escala vertical também por meio do componente VPA.
Networking: Entender sobre a CNI que implementa a parte de rede, além do CoreDNS responsável pela parte de queries DNS. Faremos troubleshooting/debugging dessa camada.
RBAC: Vamos configurar a autenticação de um usuário por meio de certificado TLS x509, além de autorizar chamadas de API via RBAC do Kubernetes.
Upgrade: Realizar checks pré-upgrade, além de realizar o processo de upgrade manualmente nos nodes.
Scheduling: Utilizar diferentes estratégias de scheduling como NodeAffinity, PodAffinity, NodeSelector, Topology Constraints, Taints e Tolerations.
Troubleshooting: Vamos aprender como analisar os problemas mais comuns, inclusive simular erros de conectividade com IPTables. Além vou te dar dicas e estratégias de análise que uso no meu dia a dia.
Sim, é um legítimo bombardeio de conteúdo sobre Kubernetes raíz.
O foco deste treinamento não é desenvolver projetos, mas sim compreender a fundo todo o ecossistema de orquestração do Kubernetes, te entregando um conhecimento profundo que possa ser utilizado no mercado de trabalho.
Who this course is for:
- Estudantes da área de T.I
- DevOps Engineers
- Site Reliability Engineers
Instructor
Entusiasta Linux e autodidata, com o objetivo de transformar assuntos complexos em explicações simples.
Já passei pelo maior Cloud Provider do mundo quando trabalhei e morei na Irlanda. Hoje, atuo como Lead DevOps Engineer de forma totalmente remota para o exterior.
CERTIFICAÇÕES LINUX:
Linux Professional Institute Certified, Level 3 - Linux Enterprise Professional
Linux Professional Institute Certified, Level 2 - Linux Engineer
Linux Professional Institute Certified, Level 1 - Linux Administrator
Linux Foundation Certified Engineer
Linux Foundation Certified Systems Administrator
CompTIA Linux+
Suse Certified Linux Administrator
OUTRAS CERTIFICAÇÕES:
Certified Kubernetes Administrator
OpenStack Foundation Certified OpenStack Administrator
Hashicorp Terraform Associate
AWS Solutions Architect Associate
AWS Developer Associate
CompTIA A+
ITIL Foundation
MCP Windows 8.1
GRADUAÇÃO:
Tecnólogo em Análise e Desenvolvimento de Sistemas