Curso Managing Clusters and containers with Kubernetes
32 horasVisão Geral
Este Curso Managing Clusters and containers with Kubernetes, fornecerá aos alunos uma compreensão das tecnologias fundamentais por trás do Ansible e mostrará aos alunos como usar o Ansible como uma ferramenta para gerenciar a infraestrutura de computação.
Gerenciando clusters e contêineres com Kubernetes,
- Kubernetes é um sistema de orquestração de código aberto para contêineres do Docker.
- Ele lida com o agendamento em nós em um cluster de computação e gerencia ativamente as cargas de trabalho para garantir que seu estado corresponda às intenções declaradas dos usuários. Utilizando os conceitos de "labels" e "pods", agrupa os containers que compõem uma aplicação em unidades lógicas para fácil gerenciamento e descoberta.
Objetivo
Após realizar este Curso Managing Clusters and containers with Kubernetes, você será capaz de:
- Entender a arquitetura do Kubernetes e usar terminologia básica
- Projete e gerencie clusters do Kubernetes
Pre-Requisitos
- Os participantes devem se sentir à vontade para usar comandos do shell de comando em um ambiente Linux ou Unix.
Materiais
Inglês + Exercícios + Lab PraticoConteúdo Programatico
Overview of Containerization Systems
- Modern Infrastructure Terminology
- Virtualization
- Hypervisors
- Hypervisor Types
- Type 1 Hypervisors
- Type 2 Hypervisors
- Type 1 vs Type 2 Processing
- Paravirtualization
- Virtualization Qualities (1/2)
- Virtualization Qualities (2/2)
- Disadvantages of Virtualization
- Containerization
- Virtualization vs Containerization
- Where to Use Virtualization and Containerization
- Containerization: High-Level
- Popular Containerization Systems
- What are Linux Containers
- Docker
- OpenVZ
- Solaris Zones (Containers)
- Container Orchestration Tools
- Docker Swarm
- Kubernetes
- Mesos and Marathon
- Mesos and Marathon (contd.)
- Docker Use-Cases
- Microservices
- Microservices and Containers / Clusters
Introduction to Docker
- Docker Basics
- Where Can I Run Docker?
- Installing Docker Container Engine
- Docker Toolbox
- What is Docker?
- Docker Architecture
- Docker Architecture Diagram
- Docker Images
- Docker Containers
- Docker Integration
- Docker Services
- Docker Application Container Public Repository
- Docker Run Command
- Starting, Inspecting, and Stopping Docker Containers
- Docker Volume
- Dockerfile
- Docker Compose
- Using Docker Compose
- Dissecting docker-compose.yml
- Specifying services
- Dependencies between containers
- Injecting Environment Variables
Getting Started with Kubernetes
- Kubernetes Basics
- What is Kubernetes?
- Container Orchestration
- Kubernetes Architecture
- Kubernetes Concepts
- Cluster and Namespace
- Nodes
- Master
- Pod
- Using Pods to Group Containers
- Label
- Label Syntax
- Annotation
- Label Selector
- Replication Controller and Replica Set
- Service
- Storage Volume
- Secret
- Resource Quota
- Authentication and Authorization
- Routing
- Docker Registry
Application Administration in Kubernetes
- Installation
- Startup
- Kubernetes Tools
- kubectl Command Line Interface
- API Proxy
- Dashboard
- Kubernetes Component Hierarchy
- Deployments
- Deployment Commands
- Updating Deployments
- Network Considerations
- Services
- Namespaces
- Other Useful Commands
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
Kubernetes Network Administration
- 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
Managing Kubernetes Nodes
- Kubernetes Scheduler Overview
- Trusting the Kubernetes Scheduler
- Scheduling Process
- Scheduling Process - Predicates
- Scheduling Process - Priorities
- Scheduling Algorithm
- Kubernetes Scheduling Algorithm
- Scheduling Conflicts
- Controlling Scheduling
- Label Selectors
- Label Selectors (Contd.)
- Node Affinity and Anti-affinity
- Node Affinity Example
- Node Antiaffinity Example
- Taints and Tolerations
- Taints and Tolerations (Contd.)
- Taints and Tolerations - Example
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
High-Availability K8S Clusters
- Overview
- Cluster Components
- Reliable Nodes
- Reliable Storage
- Replicated API Servers
- Load Balancing
- Cluster Control Components
- Installing Configuration Files
K8S Cluster Configuration Best Practices
- Cluster Configuration Best Practices
- Specifying Kubernetes Version
- YAML vs. JSON for Configurations
- Apply Multiple Resource Config Files at Once
- Combining Multiple Resource Config Files
- Use Standalone Pods for Temporary Work
- Use Deployments to Manage Pods with ReplicaSets
- Let Kubernetes Assign Ports
- Use Namespaces and Labels
- Managing Container Images
- Other General Tips
Lab Exercises
- Lab 1. Managing Docker Containers
- Lab 2. Building Docker Images
- Lab 3. Dockerfiles
- Lab 4. Accessing the Kubernetes API
- Lab 5. Working with Kubernetes Workloads
- Lab 6. Kubernetes Cluster Overview
- Lab 7. Planning a Kubernetes Cluster
- Lab 8. Accessing Applications
- Lab 9. Scheduling and Node Management
- Lab 10. High-Availability K8s Clusters