kubernetes Administration
28 horasVisão Geral
O curso de Administração Kubernetes é projetado para fornecer aos participantes uma compreensão profunda do Kubernetes, a plataforma de orquestração de contêineres de código aberto mais popular do mundo. Kubernetes permite a automatização da implantação, dimensionamento e gerenciamento de aplicativos em contêineres. Este curso cobre desde os conceitos básicos até os aspectos avançados da administração de clusters Kubernetes, incluindo configuração, gerenciamento, monitoramento, segurança e solução de problemas.
Os participantes aprenderão a configurar e operar clusters Kubernetes, implantar aplicativos em contêineres, gerenciar o armazenamento e a rede, implementar políticas de segurança e usar ferramentas de monitoramento e solução de problemas para garantir a alta disponibilidade e desempenho dos aplicativos.
Objetivo
Após realizar este cursokubernetes Administration, você será capaz de:
- Planejar e criar um cluster Kubernetes, incluindo a instalação dos componentes necessários, a configuração do cluster e a adição de nós
- Implante aplicativos no Kubernetes criando pods, serviços e armazenamento
- Gerencie recursos do Kubernetes com escalabilidade, escalonamento automático e atualização de aplicativos
- Integre o Kubernetes a um pipeline de integração contínua usando Jenkins
- Solucione problemas do Kubernetes monitorando logs, diagnosticando falhas de aplicativos e solucionando problemas de acesso à rede
- Compreender os conceitos fundamentais do Kubernetes e a arquitetura de clusters.
- Configurar e gerenciar clusters Kubernetes em ambientes de produção.
- Implantar, atualizar e gerenciar aplicativos em contêineres.
- Configurar e gerenciar armazenamento e redes em Kubernetes.
- Implementar práticas de segurança e controle de acesso em clusters Kubernetes.
- Monitorar e solucionar problemas em clusters Kubernetes para garantir alta disponibilidade e desempenho.
- Utilizar ferramentas e técnicas avançadas para a administração eficiente de clusters Kubernetes.
Publico Alvo
- Administradores de Sistemas e Redes.
- Engenheiros de DevOps.
- Desenvolvedores de Software que trabalham com contêineres.
- Arquitetos de Soluções.
- Profissionais de TI interessados em aprender Kubernetes.
- Qualquer pessoa responsável pela implantação, gestão e operação de aplicativos em contêineres em ambientes de produção.
Pre-Requisitos
- Compreenda as habilidades de administração do Linux
- Sinta-se confortável usando a linha de comando
- Ser capaz de editar arquivos usando um editor de texto de linha de comando
- Experiência com containers e networking
Materiais
Inglês/Português/Lab PráticoConteúdo Programatico
Kubernetes Architecture
- Kubernetes Basics
- What is Kubernetes?
- Container Orchestration
- Architecture Diagram
- Components
- Kubernetes Cluster
- Master Node
- Kube-Control-Manager
- Nodes
- Pod
- Using Pods to Group Containers
- Label
- Label Syntax
- Label Selector
- Annotation
- Persistent Storage
- Resource Quota
- Interacting with Kubernetes
Working with Kubernetes
- Installation
- Startup
- Kubernetes Tools
- kubectl Command Line Interface
- API Proxy
- Dashboard
- Kubernetes Component Hierarchy
- Deployments
- Deployment Commands
- Updating Deployments
- Network Considerations
- Services
- Namespaces
- Labels
- Annotations
- Other Useful Commands
Kubernetes Workload
- Kubernetes Workload
- Managing Workloads
- Imperative commands
- Imperative Object Configuration
- Declarative Object Configuration
- Configuration File Schema
- Understanding API Version
- Obtaining API Versions
- Stateless Applications
- Sample Deployment Manifest File
- Working with Deployments
- Stateful Applications
- Sample Stateful Manifest File
- Working with StatefulSet
- Jobs
- Sample Job Manifest File
- Working with Batch Job
- DaemonSets
- Sample Daemon Manifest File
- Rolling Updates
Scheduling and Node Management
- Kubernetes Scheduler
- Skip Kubernetes Scheduler
- Scheduling Process
- Scheduling Process - Predicates
- Scheduling Process - Priorities
- Scheduling Algorithm
- Kubernetes Scheduling Algorithm
- Scheduling Conflicts
- Controlling Scheduling
- Label Selectors
- Node Affinity and Anti-affinity
- Node Affinity Example
- Node Antiaffinity Example
- Taints and Tolerations
Managing Networking
- Kubernetes Networking Components
- The Kubernetes Network Model
- Networking Scenarios
- Container-Container Communication
- Pod-Pod Communication
- 1.3 Pod-Service Communication
- External-Service Communication
- Accessing Applications
- Useful Commands
- Container Network Interface (CNI)
- What is CNI’s Role?
- CNI Configuration Format
- Sample CNI Configuration
- Running the CNI Plugins
Managing Persistent Storage
- Storage Methods
- Container OS file system storage
- Docker Volumes
- Kubernetes Volumes
- K8S Volume Types
- Cloud Resource Types
- configMaps
- Creating configMaps from Literals
- Creating configMaps from files
- Using configMaps
- emptyDir
- Using an emptyDir Volume
- Other Volume Types
- Persistent Volumes
- Creating a Volume
- Persistent Volume Claim
- Persistent Volume
- Pod that uses Persistent Volume
- Secrets
- Creating Secrets from Files
- Creating Secrets from Literals
- Using Secrets
- Security Context
- Security Context Usage
Working with Helm
- What is Helm?
- Installing Helm
- Helm and KUBECONFIG
- Helm Features
- Helm Terminology
- Searching for Charts with helm CLI
- Adding Repositories
- Helm Hub - Search
- Helm Hub - Chart Page
- Installing a Chart
- Upgrading a Release
- Rolling Back a Release
- Creating Custom Charts
- Common Chart Files
- Helm Templates
- Installing A Custom Chart
- Packaging Custom Charts
Logging, Monitoring, and Troubleshooting
- Differences Between Logging and Monitoring
- Logging in Kubernetes
- Basic Logging
- Logging Agents
- Fluentd and Elastic Stack
- Monitoring with Prometheus
- Kubernetes and Prometheus - Metrics
- Alerting
- Debugging Pods
- Debugging Nodes
- Debugging Replication Controllers and Services
- Upgrading Kubernetes
- Upgrade Process
- Determine Which Version to Upgrade To
- Upgrade kubeadm
- Upgrade Control Plane Node
- Upgrade kubelet and kubectl
- Upgrade Worker Nodes
- Recovering From a Failure State
Continuous Integration Fundamentals
- Jenkins Continuous Integration
- Jenkins Features
- Running Jenkins
- Downloading and Installing Jenkins
- Running Jenkins as a Stand-Alone Application
- Running Jenkins on an Application Server
- Installing Jenkins as a Windows Service
- Different types of Jenkins job
- Configuring Source Code Management(SCM)
- Working with Subversion
- Working with Git
- Build Triggers
- Schedule Build Jobs
- Polling the SCM
- Maven Build Steps
- Configuring Jenkins to Access Kubernetes
- Jenkins Pipeline
- Jenkins Pipeline Output
- Installing Jenkins Plugins
Kubernetes Cluster Administration Overview
- Architecture Diagram
- Components
- Kubernetes Cluster
- Master Node
- Kube-Control-Manager
- Nodes
- Other Components
- Interacting with Kubernetes
Planning and Designing a Kubernetes Cluster
- Cloud Native Security
- Code Security
- Container Security
- Cluster Security
- Cloud/Data Source Security
- Access Management
- API Server Ports
- API Access
- Security Policies
- RBAC Role Based Access Control
- Role Example
- ClusterRole Example
- Granting Roles to Users
- Security Contexts
- Kubernetes Namespaces
- Namespace Advantages
- Initial Namespaces
- Custom Namespaces
- Namespaced Objects
- kubectl Commands and Namespaces
- Uses for Namespaces
Managing Kubernetes Clusters
- Kubernetes Cluster
- Points of Configuration
- Sizing a Cluster
- Resizing a Cluster
- Horizontal auto-scaling
- Maintenance on a Node
- Kubernetes Cluster Limits
- Considerations for Running Large Clusters
- Considerations for Running Multiple Clusters
- Multi-Cluster Architectural Choices
- Resource Quotas
- Example Resource Allocation
- Cluster Failure Modes
- Cluster Troubleshooting Workflow
Deployment Strategies
- Rolling Updates
- Parameters for Rolling Updates
- Strategy Parameters in Deployment Specs
- Deployment Strategies
- Recreate
- Ramped
- Blue/Green
- Canary
- a/b Testing
- Deployment Status
- History
- Versioning of Deployments
- Labeling a Deployment Version in Kubernetes
- Versioning with Helm
- Deployment Tools
Autoscaling
- Autoscaling
- HorizonalPodAutoscaler (HPA)
- Autoscale Command
- Autoscale Yaml
- Generating Traffic for Testing
- Response to Changing Traffic
- Get HPA --watch Mode
- Scaling Based on Requested Resources
- Scaling Based on Direct Value
- Metrics Types for Scaling
- Scaling Based on Multiple Metrics
Lab Exercises
- Lab 1. Creating a Docker Account and Obtain an Access Token
- Lab 2. Configuring Minikube/Kubernetes to Use a Custom Docker Account
- Lab 3. Accessing the Kubernetes API
- Lab 4. Working with Kubernetes Workloads
- Lab 5. Scheduling and Node Management
- Lab 6. Accessing Applications
- Lab 7. Using Persistent Storage
- Lab 8. Getting Started with Helm
- Lab 9. Build CI Pipeline with Jenkins
- Lab 10. Kubernetes Cluster Overview
- Lab 11. Planning a Kubernetes Cluster