Orquestração Docker + Projeto DevOps
Formação Inicia Completal!
⭐⭐⭐⭐⭐ Curso aprovado por mais de 5.257 alunos!
Curso de Kubernetes Completo
O que é Kubernetes?
Kubernetes é uma tecnologia de orquestração de contêineres prontos para produção que desempenha um papel fundamental na gestão de todo o ciclo de vida de aplicações em nuvens. O Google, por exemplo, utiliza o Kubernetes para implementar mais de 12 bilhões de aplicações por mês, incluindo serviços como o Buscador, YouTube, Gmail, Google Play e Chrome.
Nas empresas de tecnologia mais avançadas, o Kubernetes se tornou um fenômeno devido à sua versatilidade, segurança e desempenho. Ele permite a implantação ágil de novos softwares e atualizações, atendendo às demandas da internet atual.
Em resumo, o Kubernetes é uma tecnologia que facilita a gestão e a escalabilidade de contêineres.
Este curso inclui...
19 horas de videoaulas
35 artigos
61 recursos para baixar
Acesso vitalício ao conteúdo
Certificado de conclusão de curso
O que você vai Aprender...
No Projeto Final do Curso, você terá a oportunidade de orquestrar uma aplicação profissional. Antes disso, aprenderá sobre os seguintes tópicos relacionados ao Kubernetes:
Orquestrador de Container: Entenderá o que é um orquestrador de container e para que ele é utilizado.
Instalação Local do Kubernetes: Aprenderá a instalar e configurar o Kubernetes em sua máquina.
kubectl: Instalará a ferramenta de linha de comando para controle do Kubernetes.
História, Fundamentos e Conceitos do Kubernetes: Explorará a origem, os princípios fundamentais e os conceitos essenciais do Kubernetes.
Componentes do Cluster Kubernetes: Conhecerá os componentes que formam um cluster Kubernetes.
Arquivos YAML no Kubernetes: Compreenderá a estrutura dos arquivos YAML usados no Kubernetes.
Pods: Agrupará containers em modelos de hosts lógicos chamados Pods.
ReplicaSets: Manterá um conjunto estável de réplicas de Pods em execução.
Deployments: Implementará, escalará e realizará rollout e rollback de suas aplicações.
Infraestrutura de Rede Interna do Kubernetes: Entenderá os conceitos básicos da rede interna do Kubernetes.
Namespaces: Aprenderá a usar o mecanismo de isolamento de grupos de recursos.
Kubernetes Services: Manipulará diversos tipos de serviços.
LivenessProbe: Implementará verificações de sanidade para suas aplicações.
Recursos Computacionais com Kubernetes: Compreender e gerenciar os recursos mínimos e máximos disponíveis usando o Kubernetes Resources.
Persistência de Dados com Volumes: Utilizar diferentes tipos de volumes (como emptyDir, hostPath e PersistentVolume) para garantir a persistência de dados.
DaemonSets: Criar e gerenciar daemons usando os poderosos DaemonSets do Kubernetes.
K8s Jobs: Executar processos ou tarefas pontuais usando os recursos Kubernetes Jobs.
K8s CronJobs: Elaborar e agendar tarefas ou processos usando os Kubernetes CronJobs.
ConfigMaps e Secrets: Armazenar, usar e manipular dados de configurações não confidenciais com ConfigMaps e dados confidenciais com Kubernetes Secrets.
StatefulSets: Utilizar os avançados StatefulSets para orquestrar aplicações com estado persistente.
Endpoints e EndpointSlices: Gerenciar endpoints internos e externos usando os flexíveis recursos Kubernetes Endpoints e o novo recurso EndpointSlices.
Controle de Acesso com RBAC: Entender e controlar o acesso aos recursos Kubernetes usando RBAC (Role-Based Access Control).
Boas Práticas de Administração: Aprender boas práticas para a administração diária do Kubernetes.
Preparação para a Certificação CKA: Estudar os conceitos, recursos e componentes necessários para a prova Certified Kubernetes Administrator.
Confiança no Currículo: Ganhar confiança para incluir no seu currículo que você domina o Kubernetes!
Descrição Completa do Curso
Existe diferença entre Kubernetes e serviços como GKE (Google), AKS (Azure), EKS (Amazon), ACK (Alibaba)?
A diferença é grande, pois serviços como GKE, AKS, EKS e ACK não é Kubernetes! Em termos mais simples, Kubernetes é um sistema de orquestração de containers. Ele é uma tecnologia independente, aberta e gratuita que será ensinada neste treinamento. Você poderá aplicá-la de forma pura e totalmente reutilizável em qualquer ambiente com Kubernetes instalado, seja localmente ou na nuvem.
Agora, vamos falar sobre os produtos específicos que utilizam o Kubernetes: GKE, AKS, EKS e ACK são serviços oferecidos pela Google, Microsoft, Amazon e Alibaba, respectivamente. Eles disponibilizam um ambiente (chamado de cluster) para você executar suas aplicações baseadas em Kubernetes fora da sua empresa, ou seja, na nuvem desses provedores. Esses serviços são conhecidos como Managed Kubernetes Platforms (Plataformas Kubernetes Gerenciadas).
Em resumo, GKE, AKS, EKS e ACK não são mais do que ambientes prontos para instalar e gerenciar o Kubernetes. Além disso, eles oferecem serviços adicionais para enriquecer o seu ambiente de cluster Kubernetes e cobram por esses recursos.
A quem pertence o Kubernetes?
O Kubernetes faz parte da iniciativa da Cloud Native Computing Foundation (CNCF). A CNCF é ligada à Linux Foundation, uma entidade sem fins lucrativos que também coordena o desenvolvimento do Linux (Kernel).
Por que é importante estudar Kubernetes?
O Kubernetes (também conhecido como K8s) é uma ferramenta essencial para quem deseja se destacar no emocionante mundo das aplicações em nuvem que utilizam containers. Com o Kubernetes, você estará preparado para enfrentar os desafios da escalabilidade, gerenciamento e implantação eficiente de aplicações.
E não é só o Google que está aproveitando o poder do Kubernetes! Empresas renomadas, como NASA, Nubank, Spotify, Adidas, Tinder, Airbnb, Bloomberg Financial Data Analytics e Udemy, também estão adotando o Kubernetes para inovar seus sistemas. Essas organizações líderes estão colhendo os benefícios dessa plataforma robusta e flexível, e você também pode fazer parte desse movimento. Portanto, mergulhe no Kubernetes e torne-se um especialista nessa tecnologia que está moldando o futuro das aplicações em nuvem!
Qual conhecimento obtenho com este treinamento?
Você receberá uma base sólida, começando pelo essencial: entender o que é um orquestrador de containers e, em particular, o que é o Kubernetes. Além disso, exploraremos as diversas possibilidades de uso dessa tecnologia.
Ao longo do aprendizado, você se tornará capaz de gerenciar todo o ciclo de vida de suas aplicações. Isso inclui desde a implantação inicial até as atualizações e escalabilidade. Além disso, você adquirirá habilidades para lidar com situações cotidianas que um administrador de Kubernetes enfrenta, desenvolvendo a capacidade de resolver problemas de forma assertiva e profissional.
Como o foi estruturado pedagogicamente?
Este curso adota uma metodologia de neuroaprendizagem, aplicando técnicas de ensino que permitem ao aluno absorver até 70% mais do conteúdo sobre a tecnologia em questão, com menos esforço mental.
Os tópicos são organizados em três pilares:
O que é?: Aqui, você entenderá o conceito fundamental por trás da tecnologia.
Por quê?: Exploraremos o propósito de uso, compreendendo por que essa tecnologia é relevante e como ela se encaixa no cenário atual.
Como fazer?: A parte prática! Você aprenderá a implementar a tecnologia, colocando em prática o conhecimento adquirido.
Ao longo do curso, você terá 20% de conteúdo conceitual e 80% de aulas práticas. Não se trata apenas de usar o Kubernetes, mas também de entender o que está acontecendo nos bastidores, tornando-se um profissional de grande valor nesse campo.
Que nível de profissionalização conseguirei atingir com esse curso? Quão completo é o curso?
O treinamento oferece uma formação profissional inicial para ingressar no mercado de Kubernetes (Administrador de Kubernetes — Nível Inicial). Com o conteúdo deste curso, você estará preparado para lidar com várias situações relacionadas à operação diária do Kubernetes. O curso foi estruturado pedagogicamente da seguinte maneira:
Tópicos Básicos: O curso abrange todos os aspectos fundamentais do Kubernetes.
Tópicos Intermediários: Inclui as operações comuns do dia a dia.
Tópicos Avançados: Aborda algumas questões essenciais avançadas.
E o Projeto Final de Curso, como é?
O projeto final envolve a aplicação prática de todo o conhecimento adquirido durante o treinamento. Nele, você terá a oportunidade de orquestrar completamente um sistema profissional amplamente utilizado em todo o mundo. O curso fornecerá todas as condições necessárias para enfrentar esse desafio. O projeto será conduzido passo a passo e explicado detalhadamente pelo professor, com o objetivo final de orquestrar uma aplicação profissional. Isso inclui gerenciar todo o ciclo de vida do software: desde a implantação em produção até a gestão dos aspectos fundamentais e, por fim, a remoção da aplicação.
É necessário pagar ou usar cartão de crédito em uma nuvem pública para realizar este treinamento? (Por exemplo: Google, Azure, Amazon, Alibaba, etc.)
Este curso utiliza exclusivamente tecnologias FOSS (Software Livre e de Código Aberto). Você não precisará gastar um centavo sequer para utilizar qualquer uma das tecnologias ensinadas neste treinamento, nem será necessário fornecer seus dados de cartão de crédito a nenhuma empresa. É inaceitável que essas grandes corporações continuem buscando lucrar com estudantes.
No decorrer do curso, utilizaremos o Minikube, um sistema desenvolvido pelos criadores do Kubernetes. O Minikube cria um ambiente real de cluster Kubernetes completo, com todas as funcionalidades necessárias para executar tudo o que precisamos aprender neste treinamento. E o melhor de tudo: você não precisará pagar absolutamente nada! Afinal, o Minikube é um software FOSS (Free and Open Source Software)!
O que é o Minikube?
O Minikube é uma ferramenta especialmente criada para o ensino e aprendizado do Kubernetes. A Cloud Native Computing Foundation (CNCF) e a Linux Foundation (parceira da CNCF e certificadora do Kubernetes) recomendam e incentivam fortemente o uso do Minikube para fins educacionais.
Tudo o que estudarmos utilizando o Minikube funcionará de maneira idêntica onde o Kubernetes estiver instalado, seja em uma nuvem pública (como Google, Azure, Amazon, Alibaba, etc.), em um Raspberry Pi, em uma Máquina Virtual ou mesmo em servidores físicos (Bare Metal). A portabilidade e consistência proporcionadas pelo Minikube facilitam a aplicação prática dos conhecimentos adquiridos.
Qual conhecimento prévio devo ter para realizar este treinamento?
Três coisas são necessárias antes de fazer este curso:
Conhecimento em Docker: Este curso não ensinará Docker, portanto, é importante que você já tenha familiaridade com essa tecnologia.
Noções gerais de redes de computadores: É recomendado ter conhecimentos básicos sobre TCP/IP, DHCP, DNS, Proxy e Load Balancer.
Conhecimentos básicos de GNU/Linux: Ter uma compreensão básica do sistema operacional Linux também é recomendado.
Este é um treinamento de preparação para Certified Kubernetes Administrator (CKA)?
Este curso é importantíssimo para quem planeja fazer obter a certificação CKA. Você aprenderá os conceitos, recursos e componentes que são abordados na prova. No entanto, é recomendado realizar simulados e estudos adicionais antes de fazer a prova, já que este curso não inclui simulados.
Quem é o professor deste treinamento?
O Prof. Eng. Arnaldo Sousa, graduado em Engenharia de Software, Gestão de TI e Análise e Desenvolvimento de Sistemas, possui uma vasta experiência como instrutor e consultor oficial da IBM e da Sun Microsystems (criadora do Java, atual Oracle). Arnaldo é professor licenciado e possui diversas especializações na área da educação, incluindo Docência, Comunicação, Neuroaprendizagem, Neuropsicologia, Filosofia e Educação Especial.
Com sua ampla vivência no uso e ensino de novas tecnologias em grandes corporações, o professor apresentará o Kubernetes de forma extremamente compreensível!
Conteúdo do curso
Abertura do Curso
Visão Geral e Objetivos do Curso
Apresentação do Professor
Wallpapers do Curso
Não sei Docker, posso fazer este curso?
Mais informações sobre pré-requisitos
Setup para usuários Windows
Importante!
antiX Linux, VM para usuários Windows
Oracle VirtualBox
Downloads para Virtual Machine antiX Linux
Instalação do hypervisor Oracle VirtualBox
Configuração da antiX VM (OVA file)
antiX Linux Overview
VirtualBox Shared Folders
Informações aos usuários GNU/Linux
FeatherPad - Editor Recomendado
Setup do Kubernetes
Comandos de Instalação e Configuração
Instalação do Docker
minikube - Local Kubernetes Cluster
Versões de kubectl e minikube utilizadas
Instalação do kubectl
Instalação do minikube
História, Fundamentos e Conceitos
O que é um orquestrador de container?
Orquestradores populares (Docker Swarm, Apache Mesos, OpenShift e Kubernetes)
O que é Kubernetes? Qual sua história?
Conceito de Imutabilidade Kubernetes
Fundamentos
Disponibilidade - Parte 1 - Configurações Declarativas
Disponibilidade - Parte 2 - Relação DevOps
Escalabilidade - Infraestrutura, Serviços e Equipes DevOps
Abstração de Infraestrutura
Fundamentos
Componentes
Control Plane
kube-apiserver
cloud-controller-manager
controller-manager
etcd - Cluster Persistence Storage
kube-proxy
Conceito de recursos Pods
kube-scheduler
kubelet
Container Runtime Interface (CRI)
YAML
YAML - Introdução
YAML - Overview
YAML - Principais Utilizações: Persistência, Docker Compose, Kubernetes.
YAML - Estrutura Básica
Arquivo YAML para Kubernetes
Pods
Exercitar - Aprender fazendo!
Criando Pods - Forma Imperativa
Criando Pods - Manifest Files
Exercício Opcional
ReplicaSets
Exercícios - Aprender fazendo
Conceito e Criação de ReplicaSet
ReplicaSet Controlando Pods
ReplicaSet Scale - Manifest File
ReplicaSet Scale - Imperative
Deployments
Overview da Seção Deployments
Introdução à Kubernetes Deployments
Exercitar - Aprender fazendo
Criação de Deployment
Deployment Rollout
Rolling Update Strategy - Análise Minuciosa
Remoção de Recursos Deployment
Rollout History
Deployment Rollback
Rollout Pause & Rolout Resume
Deployment Scale: YAML & Imperative form
Recreate Strategy Type
Kubernetes Networking Infrastructure
Container to Container Communication
Intra-Node Pod Network Communication
INTER-Node Pod Network Communication
Exercitar - Aprender fazendo
Teste de Comunicação entre Pods - Parte 1
Teste de Comunicação entre Pods - Parte 2
Namespaces
Introdução aos Namespaces
Exercitar - Aprender fazendo
Criação de Namespaces
Current Context Namespace
Namespaces Manifest File
Services
Introdução aos Kubernetes Services
Disponibilização de Services
ClusterIP Default Service
ClusterIP - Comunicação entre Portas: port e targetPort
Exercitar - Aprender fazendo
Criação de ClusterIP Service
Consumindo ClusterIP Service
Características ClusterIP e Deleções em Massa de Recursos
NodePort Service
Portas NodePort Service: Mandatory, Optional , Omitted, Random
Criação de um NodePort Service
Consumo externo de NodePort Service
Formas de Obter endereço IP do Node
Remoção de NodePort Service
Instrodução à servicos avançados
LoadBalancer Service
LoadBalancer Service - Criação, Consumo e Remoção
Introdução à ExternalName Service
ExternalName Service - DNS Looking UP
LivenessProbe
Overview da Seção LivenessProbe
Introdução à Kubernetes LivenessProbe
Exercitar - Aprender fazendo
Implementando LivenessProbe e Lógica de Sanidade
Colocando LivenessProbe em Ação!
Gerenciamento de Recursos
Overview da Seção Gerenciamento de Recursos
Requests Resources - Minimum Resources
Exercitar - Aprender fazendo
Implementação de Requests Resources
Limits Resources - Maximum Resources
Gerenciando Recursos em Múltiplos Containers no mesmo Pod
Volumes
Overview da Seção Volumes
Introdução à Kubernetes Volumes
Exercitar - Aprender fazendo
Criando Volumes Efêmeros emptyDir
Criação de Volumes Persistentes hostPath
PersistentVolume, PersistentVolumeClaim, VolumeClaimTemplates e Storage Class
DaemonSet
Overview da Seção DaemonSets
Introdução Kubernetes DaemonSets
Exercitar - Aprender fazendo!
Criando DaemonSets Pods em Múltiplos Nodes
Orientação para Troubleshooting em minikube Multi-Nodes
Troubleshooting: minikube Multi-Nodes
DaemonSet Orphan Pods
Cascade Orphan Pods Option
Adoção de DaemonSet Orphan Pods
DaemonSet on Speficic Nodes
Criando DaemonSet on Speficic Nodes com Node Labels
DaemonSet Pods Direct Nodes Attibution
Pods Direct Nodes Attibution - Usando Node Name
Pods Nodes Attibution - Usando Node Labels
Rolling Update DaemonSet Update Strategy
OnDelete DaemonSet Update Strategy
Detalhes Adicionais sobre DaemonSet Update Strategy
Jobs
Overview da Seção Jobs
Importância das Job Technical Specifications
Introdução aos Kubernetes Jobs
Container Exit Codes & Kubernetes Jobs
Container Restart Policy - Pods & Jobs Pods
Restart Policy Values - Pods & Jobs Pods
Restart Policy Application
Falhas em Job Pods
Desafio: Usar Jobs para Geração de Números da Sorte de Loteria
Exercitar - Aprender fazendo!
Criando Jobs para Geração de Números da Sorte
Entendendo Detalhes do Job para Geração dos Números da Sorte
Job Completions - Múltiplas Tarefas com Job Único
Indexed Job Pods
Entendendo Execuções de Múltiplas Job Completions
Jobs Parallelism - Concorrência de Kubernetes Jobs
ActiveDeadlineSeconds - Parte 1
ActiveDeadlineSeconds - Parte 2
CronJobs
Overview da Seção CronJobs
Introdução à Kubernetes CronJobs
Estrutura Básica do Kubernetes CronJob
API CronJob
Kubernetes Cron Schedule Syntax
CronJob Special Strings
Exemplos de Schedule Cron & crontab guru
Exercitar - Aprender fazendo!
Criação e Execução de Kubernetes CronJob
Eventos e Execuções do Kubernetes CronJobs
Identificação: CronJobs > Jobs > Pods
Suspenção de CronJob - Parte 1: Suspend Patch
Suspenção de CronJob - Parte 2: Continue Patch
CronJobs Parallelism
Limitações Gerais Kubernetes CronJob - Parte 1
Limitações Gerais Kubernetes CronJob - Parte 2
Limitações Kubernetes CronJob Time Zones
Recursos Adicionais Cron
ConfigMaps
Overview das Seções ConfigMaps e Secrets
Introdução à Kubernetes ConfigMaps
Especificações Gerais de ConfigMaps
Exercitar - Aprender fazendo!
Criando ConfigMap
Mapeamento ConfigMap - Env Variable
Atualização de ConfigMap - Env Variable
Consumindo ConfigMap por Container Command
Criação de ConfigMap com ReadOnly Volume
Detalhes de ConfigMap com ReadOnly Volume
Atualização de ConfigMap com ReadOnly Volume
ConfigMap File Properties
ConfigMaps Baseados em Arquivo de Parâmetros
ConfigMaps Imutáveis
Implementando ConfigMaps Imutáveis
Secrets
Introdução a Kubernetes Secrets
Consumo de Secrets - Base64 & Arbitrary Strings
Exercitar - Aprender fazendo!
Criando Secret: data Field e Operações Base64
Opaque, stringdata Field, immutable
Criando e Usando Secrets com Env Variable e ReadOnly Volume
Secrets Opcionais
Kubernetes Built-in Types
Secret de Autenticação Básica
Secret Protection Power & Hardening Options
StatefulSets
Overview da Seção StatefulSets
Introdução à Kubernetes StatefulSets
StatefulSet Features
Composição de StatefulSet e Recusos Associados
Exercitar - Aprender fazendo!
Criando Headless Service
Criando StatefulSet
Dynamic Volume Provisioning (volumeClaimTemplates)
StatefulSet Scale-UP & Scale Down
Atualização de StatefulSet
Identidade Única de Rede, Persistência e Service Lookup
PersistentVolume, PersistentVolumeClaim e StorageClass
Remoção de PersistentVolumeClaim e PersistentVolume
OrderedReady Pod Management Policy
Parallel Pod Management Policy
Limiações StatefulSet
Endpoints
Overview da Seção Endpoints
Introdução à Kubernetes Endpoints
Exercitar - Aprender fazendo!
Criação de Recurso Kubernetes Endpoints
Utilização de Recurso Kubernetes Endpoints
Acessando Endpoints Externos ao Cluster Kubernetes
EndpointSlice
Overview da Seção EndpointSlice
Limitações de Recursos Endpoints
Escalabilidade e Extensibilidade EndpointSlice
EndpointSlice Labels e Endereçamentos Suportados
Exercitar - Aprender fazendo!
Criando EndpointSlice
Múltiplos EndpointSlice: Implementação e Uso
Automatic EndpointSlice Mirroring
RBAC Security Authorization
Overview da Seção RBAC
Introdução à RBAC Authorization
Access Control Types: Role/RoleBinding & ClusterRole/ClusterRoleBinding
Interação entre Objetos RBAC
RBAC Verbs for Roles
Implementação de Cenário Prático RBAC para Perfil de Auditor
Exercitar - Aprender fazendo!
Gerando Chave e Certificado de Segurança para RBAC
Configuração de Usuário e Contexto (kubeconfig credential & context)
Criação de Role e RoleBinding
Implementando RBAC Authorization
Testando RBAC Authorization
Removendo: Contexto, Usuário, Chave e Certificado
Guia de Boas Práticas para Kubernetes
Overview da Seção de Boas Práticas
Princípios Básicos da Administração do Kubernetes
Revisões de Códigos e Equipes DevOps
Controladores de Versões e Separações por Camadas (Layers)
Organização e Versionamento de Manifest Files
Rollout em Larga Escala / Abrangência Mundial
Projeto Final de Curso - Orquestração Real Profissional
Overview da Seção do Projeto Final de Curso
Overview do Projeto Final de Curso
Aplicação que será Orquestrada no Projeto
Conhecendo a Aplicação e suas Integrações
Fases do Projeto de Orquestração
Exercitar - Aprender fazendo!
Projeto Fase 1: Manifesto Namespace e Annotations
Projeto Fase 2: Manifesto Deployment
Projeto Fase 3: Implantando Aplicação
Projeto Fase 4: Verificando Implementação
Projeto Fase 5: Testando Aplicação
Projeto Fase 6: Migrando Aplicação para Service
Projeto Fase 7: Migrando Porta da Aplicação
Projeto Fase 8 - Escalando Aplicação
Projeto Fase 9: Atualizando Aplicação
Projeto Fase 10: Análise Final e Remoção da Aplicação
Encerramento do Curso
Finalização do Curso