Programa do Curso
Dia 1 – Contêineres e Gerenciamento de Imagens
Introdução às Plataformas de Contêiner
- Implantação tradicional de aplicativos comparada com implantação baseada em contêineres
- Contêineres e máquinas virtuais
- Runtimes de contêiner e motores de contêiner
- O papel do Docker, Kubernetes e OpenShift
- Arquiteturas comuns de plataformas de contêiner
- Fluxos de trabalho de desenvolvimento, testes e produção
Trabalhando com Contêineres
- Execução e gerenciamento de contêineres
- Ciclo de vida do contêiner
- Iniciar, parar e remover contêineres
- Execução de comandos dentro dos contêineres
- Variáveis de ambiente
- Mapeamento de portas
- Logs do contêiner
- Uso de recursos e inspeção de processos
Construção de Imagens de Contêiner
- Estrutura da imagem e camadas
- Criação de Dockerfiles e Containerfiles
- Seleção de imagens base
- Inclusão de dependências do aplicativo
- Configuração de pontos de entrada (entrypoints) e comandos
- Caching de imagens
- Redução do tamanho da imagem
- Construção de imagens reproduzíveis
Registros de Contêiner (Container Registries)
- Registros públicos e privados
- Tagging e versionamento de imagens
- Envio (push) e obtenção (pull) de imagens
- Autenticação de imagens
- Retenção e limpeza de imagens
- Considerações básicas de segurança de imagens
Rede e Armazenamento de Contêineres
- Conceitos de rede do contêiner
- Rede em bridge (ponte)
- Exposição de portas
- Comunicação entre contêineres
- Montagens vinculadas (bind mounts) e volumes
- Dados persistentes no contêiner
- Considerações de backup
Exercícios Práticos
- Executar e inspecionar contêineres
- Construir uma imagem de aplicativo
- Configurar portas e variáveis de ambiente
- Publicar uma imagem em um registro
- Armazenar dados persistentes fora do contêiner
Dia 2 – Arquitetura e Cargas de Trabalho do Kubernetes
Fundamentos do Kubernetes
- O propósito da orquestração de contêineres
- Arquitetura do Kubernetes
- Componentes do plano de controle (control plane)
- Nós de trabalhador (worker nodes)
- Servidor API
- Agendador (Scheduler)
- Controladores
- Estado do cluster e estado desejado
- Comunicação com o cluster usando kubectl
Recursos do Kubernetes
- Pods
- ReplicaSets
- Deployments
- Nsamespaces
- Rótulos e anotações
- Seletors
- Definições de recursos declarativas
- Manifestos YAML
Implantação de Aplicativos
- Criação e gerenciamento de Deployments
- Escala de cargas de trabalho
- Atualização de imagens de contêiner
- Atualizações progressivas (rolling updates)
- Roluções (rollbacks)
- Histórico de implantação
- Reinicialização de cargas de trabalho
- Gerenciamento de réplicas do aplicativo
Configuração de Aplicativos
- ConfigMaps
- Secrets
- Variáveis de ambiente
- Arquivos de configuração
- Separação do código do aplicativo da configuração
- Gerenciamento de configurações específicas do ambiente
Gerenciamento de Recursos
- Pedidos de CPU e memória
- Limites de CPU e memória
- Quotas de recursos
- Faixa de limites (limit ranges)
- Implicações no agendamento
- Diagnóstico de falhas relacionadas a recursos
Exercícios Práticos
- Implantar um aplicativo em contêiner
- Criar e atualizar manifestos do Kubernetes
- Escalar um aplicativo
- Executar uma atualização progressiva e uma rolamento
- Configurar o aplicativo usando ConfigMaps e Secrets
- Aplicar pedidos e limites de recursos
Dia 3 – Rede, Armazenamento e Segurança do Kubernetes
Rede do Kubernetes
- Modelo de rede do cluster
- Comunicação pod-pod
- Descoberta de serviços
- DNS dentro do cluster
- Serviços ClusterIP
- Serviços NodePort
- Serviços LoadBalancer
- Conceitos de Ingress
- Padrões de exposição de aplicativos
Políticas de Rede
- Controle de tráfego entre cargas de trabalho
- Regras de ingress e egress
- Controle de tráfego baseado em namespace
- Teste de conectividade de rede
- Solução de problemas de comunicação de serviço
Armazenamento Persistente
- Armazenamento efêmero e persistente
- Volumes
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Provisionamento dinâmico
- Modos de acesso
- Políticas de reclamation
- Armazenamento para aplicativos stateful
Controle de Acesso no Kubernetes
- Conceitos de autenticação e autorização
- Controle de Acesso Baseado em Funções (RBAC)
- Roles e ClusterRoles
- RoleBindings e ClusterRoleBindings
- Contas de serviço
- Acesso de menor privilégio
- Inspecionar permissões efetivas
Segurança de Cargas de Trabalho
- Contextos de segurança
- Execução de contêineres como não-root
- Capacidades do Linux
- Sistemas de arquivos apenas para leitura
- Gerenciamento de Secrets
- Procedência de imagens
- Riscos comuns de configuração
Exercícios Práticos
- Expor um aplicativo usando serviços do Kubernetes
- Configurar ingress
- Restringir tráfego usando uma política de rede
- Provisionar armazenamento persistente
- Configurar permissões RBAC
- Executar uma carga de trabalho com um contexto de segurança apropriado
Dia 4 – Trabalhando com Ambientes OpenShift
Introdução ao OpenShift
- OpenShift como uma plataforma de aplicativos baseada em Kubernetes
- Recursos do Kubernetes em um ambiente OpenShift
- Arquitetura do cluster OpenShift
- Projetos e namespaces
- Usuários da plataforma e contas de serviço
- Trabalhando com o console web
- Trabalhando com a CLI do OpenShift
Gerenciamento de Projetos e Acesso
- Criação e gerenciamento de projetos
- Atribuição de permissões de usuário
- Roles em nível de projeto
- Acesso administrativo
- Quotas de recursos
- Faixa de limites (limit ranges)
- Contas de serviço
- Revisão dos recursos do projeto
Implantação de Aplicativos
- Implantação de imagens de contêiner
- Criação de cargas de trabalho de aplicativos
- Gerenciamento de implantações
- Escala de aplicativos
- Atualização de versões do aplicativo
- Roluções (rollbacks)
- Gerenciamento da configuração do aplicativo
- Trabalhando com secrets
Exposição de Aplicativos
- Serviços no OpenShift
- Rotas (Routes)
- Conceitos de TLS
- Acesso interno e externo ao aplicativo
- Hostnames e certificados
- Solução de problemas de rotas e serviços
Armazenamento no OpenShift
- Persistent Volume Claims
- StorageClasses
- Anexar armazenamento a cargas de trabalho
- Cargas de trabalho stateful
- Permissões de acesso ao armazenamento
- Solução de problemas de montagem de volumes
Agendamento e Gerenciamento de Nós
- Rótulos e seletors
- Seletors de nós (node selectors)
- Taints e tolerations
- Conceitos de afinidade e anti-afinidade
- Posicionamento de cargas de trabalho
- Colocação em cordon e drenagem de nós
- Considerações de manutenção de nós
Exercícios Práticos
- Acessar um ambiente OpenShift
- Criar e configurar um projeto
- Implantar e expor um aplicativo
- Configurar acesso de usuário e conta de serviço
- Anexar armazenamento persistente
- Escalar e atualizar uma carga de trabalho em execução
Dia 5 – Operações, Monitoramento e Solução de Problemas
Monitoramento da Plataforma
- Monitoramento da saúde do cluster e do aplicativo
- Métricas de recursos
- Saúde dos nós
- Status das cargas de trabalho
- Capacidade e utilização de recursos
- Identificação de restrições de desempenho
Logging e Eventos
- Logs do contêiner
- Logs do pod
- Logs anteriores do contêiner
- Eventos do Kubernetes
- Mensagens do aplicativo e da plataforma
- Filtragem e interpretação de dados operacionais
Verificações de Saúde (Health Checks)
- Probes de inicialização (startup probes)
- Probes de prontidão (readiness probes)
- Probes de atividade (liveness probes)
- Projeto de endpoints úteis de saúde
- Diagnóstico de falhas nos probes
- Prevenção de reinicializações desnecessárias do aplicativo
Solução de Problemas de Cargas de Trabalho
- Pods pendentes
- Falhas na obtenção de imagens (image pull)
- Loop de falha (crash loops)
- Variáveis de ambiente mal configuradas
- Montagens com falha
- Recursos insuficientes
- Erros de permissão
- Problemas de conectividade de serviço e rota
- Problemas de DNS
- Falhas na inicialização do aplicativo
Segurança Operacional
- Revisão de permissões
- Uso de contas de serviço
- Manipulação segura de credenciais
- Práticas de segurança de imagens
- Isolamento de rede
- Auditoria de acesso à plataforma
- Aplicação do princípio do menor privilégio
Manutenção e Gerenciamento do Ciclo de Vida
- Verificações rotineiras da plataforma
- Manutenção dos nós
- Considerações de backup do aplicativo
- Backup de configuração
- Planejamento de atualizações
- Gestão de mudanças
- Teste de atualizações
- Planejamento de rollback
- Conceitos de recuperação de desastres
Workshop Prático Final
Os participantes completam um cenário operacional ponta a ponta:
- Construir e aplicar tag em uma imagem de contêiner.
- Publicar a imagem em um registro.
- Implantar o aplicativo no Kubernetes ou OpenShift.
- Configurar configurações do aplicativo e credenciais.
- Expor o aplicativo.
- Anexar armazenamento persistente.
- Configurar permissões de acesso.
- Adicionar verificações de saúde.
- Escalar e atualizar o aplicativo.
- Diagnostificar e resolver uma falha introduzida.
Formato do Curso
- Aulas interativas e discussões técnicas.
- Demonstrações pelo instrutor.
- Exercícios práticos extensivos.
- Workshops de administração e solução de problemas baseados em cenários.
- Trabalho prático em ambientes de contêiner, Kubernetes e OpenShift.
Opções de Personalização do Curso
- O curso pode ser adaptado à infraestrutura existente do participante, provedor de nuvem e ferramentas de contêiner.
- O equilíbrio entre tópicos de Docker, Kubernetes e OpenShift pode ser ajustado de acordo com a experiência da equipe.
- Os exercícios práticos podem ser personalizados para atender às aplicações, processos de implantação e requisitos operacionais da organização.
Aviso de Marca Registrada
OpenShift é uma marca registrada da Red Hat, Inc. Esta formação desenvolvida independentemente não está afiliada, endossada ou autorizada pela Red Hat.
Requisitos
Os participantes devem ter:
- Experiência utilizando a linha de comando do Linux.
- Conhecimento básico de administração de sistemas ou DevOps.
- Compreensão geral dos conceitos de rede.
- Familiaridade com processos de implantação de software.
Experiência prévia com Docker, Kubernetes ou OpenShift é útil, mas não obrigatória.
Treinamento Corporativo Personalizado
Soluções de treinamento projetadas exclusivamente para empresas.
- Conteúdo Personalizado: Adaptamos o programa e os exercícios práticos aos objetivos e necessidades reais do seu projeto.
- Horário Flexível: Datas e horários adaptados à agenda da sua equipe.
- Formato: Online (ao vivo), In-Company (em suas instalações) ou Híbrido.
Preço por grupo privado, treinamento online ao vivo, a partir de 6500 € + VAT*
Entre em contato conosco para obter um orçamento preciso e conhecer nossas promoções mais recentes
Testemunhos de Clientes (7)
Leia as explicações e ele simplificou muito o entendimento
Eric Van Wyk
Curso - Docker, Kubernetes and OpenShift 3 for Administrators
Máquina Traduzida
Os laboratórios foram os melhores. Muito práticos e fornecem experiência prática. Pessoalmente, acredito que seja o meio mais eficaz para realmente entender o curso e aplicar os conceitos abordados.
Hishaam Johnstone
Curso - Docker, Kubernetes and OpenShift 3 for Administrators
Máquina Traduzida
Amei a disposição para ajudar e explicar mais quando havia incertezas
Letlotlo Miffi
Curso - Docker, Kubernetes and OpenShift 3 for Administrators
Máquina Traduzida
Adriano estudou o assunto profundamente, que é o estilo que eu mais prefiro, ou seja: menos sobre os comandos e mais sobre o mecanismo por trás deles. Os cenários discutidos foram bem apoiados por exemplos práticos, o que ajudou muito a entender o material apresentado.
Mariusz BANASZCZYK - Sopra Steria
Curso - Docker, Kubernetes and OpenShift for Administrators
Máquina Traduzida
Conhecimento aprofundado de Adriano. Explicação dos conceitos básicos
Tomasz Szalankiewicz - LPP SA
Curso - Docker, Kubernetes and OpenShift for Administrators
Máquina Traduzida
Gostei geralmente do apresentador.
Josif Kovacevic - ANZ
Curso - Docker, Kubernetes and OpenShift for Administrators
Máquina Traduzida
Adrian clearly knows and enjoys this technology.
Tom Edginton - National Oceanography Centre
Curso - Docker, Kubernetes and OpenShift for Administrators
Máquina Traduzida