Durata corso:
Costo:
Kubernetes Application Developer
Codice: DEVC03
Il corso è stato progettato per insegnare ai professionisti dello sviluppo software come utilizzare Kubernetes in modo efficace per distribuire, scalare e gestire le proprie applicazioni containerizzate. Gli obiettivi principali del corso comprendono la comprensione approfondita dell’architettura e dei componenti di Kubernetes, l’abilità di interagire con un cluster Kubernetes utilizzando kubectl, la capacità di definire e distribuire applicazioni attraverso manifesti YAML, la competenza nella configurazione di servizi di rete per esporre le applicazioni, la gestione dei dati delle applicazioni attraverso il controllo dello storage, l’implementazione di best practice per la sicurezza e il controllo degli accessi, l’integrazione di Kubernetes nei processi di Continuous Integration e Continuous Deployment (CI/CD).
Questo corso è propedeutico alla preparazione per la certificazione Kubernetes Application Developer (CKAD).
Modalità di erogazione
In aula o Live Virtual Classroom
Attestato di partecipazione
Al termine del corso verrà rilasciato l’attestato di frequenza
- Introduzione a Kubernetes
- Componenti base
- Borg Heritage
- Terminologia
- User Community
- Tools
- Cloud Native Computing Foundation (CNCF)
- Installazione e configurazione
- Installare kubectl
- Utilizzare Google Kubernetes Engine (GKE)
- Utilizzare Minikube
- kubeadm
- kubeadm-upgrade
- Installare un Pod Network
- Kubernetes Architecture
- Control Plane Node
- Control Plane Node Components
- Worker Nodes
- Pods
- Services
- Operators
- Single IP per Pod
- Networking Setup
- API Call Flow
- CNI Network Configuration File
- Pod-to-Pod Communication
- Cloud Native Computing Foundation (CNCF)
- Build
- Container Options
- Container Runtime Interface (CRI)
- containerd
- CRI-O
- Docker
- rkt
- Containerizing an Application
- Rewrite Legacy Applications
- Creating the Dockerfile
- Hosting a Local Repository
- Creating a Deployment
- Running Commands in a Container
- Multi-Container Pod
- readinessProbe, liveness Probe, and startupProbe
- Testing
- Helm
- Design
- Traditional Applications – Considerations
- Decoupled Resources
- Transience
- Flexible Framework
- Managing Resource Usage
- Using Label Selectors
- Multi-Container Pods
- Sidecar, Adapter, Ambassador, and initContainers
- Custom Resource Definitions
- Points to Ponder
- Jobs
- Deployment Configuration
- Volumes Overview
- Introducing Volumes
- Volume Spec
- Volume Types
- Shared Volume Example
- Persistent Volumes and Claims
- Phases to Persistent Storage
- Persistent Volume
- Persistent Volume Claim
- Dynamic Provisioning
- Secrets
- Using Secrets via Environment Variables
- Mounting Secrets as Volumes
- Portable Data with ConfigMaps
- Using ConfigMaps
- Deployment Configuration Status
- Scaling and Rolling Updates
- Deployment Rollbacks
- Understanding Security
- Security
- Accessing the API
- Authentication
- Authorization
- RBAC and the RBAC Process Overview
- Admission Controller
- Security Contexts
- Pod Security Policies (PSPs)
- Pod Security Standards
- Network Security Policies
- Network Security Policy Example
- Default Policy Example
- Exposing Applications
- Service Types
- Services Diagram
- Service Update Pattern
- Accessing an Application with a Service
- Service Without a Selector
- ClusterIP
- NodePort
- LoadBalancer
- ExternalName
- Ingress Resource
- Ingress Controller
- Service Mesh
- Application Troubleshooting
- Troubleshooting
- Basic Troubleshooting Steps
- Ongoing (Constant) Change
- Basic Troubleshooting Flow: Pods
- Basic Troubleshooting Flow: Node and Security
- Basic Troubleshooting Flow: Agents
- Monitoring
- Logging Tools
- Monitoring Applications
- System and Agent Logs
- Laboratori pratici
Cloud Engineer e altri professionisti IT responsabili per la costruzione, la distribuzione e la configurazione di applicazioni native per il cloud con Kubernetes. Questo corso è ideale anche per gli sviluppatori che desiderano acquisire competenze nello sviluppo di applicazioni Kubernetes.
Competenza di base in ambienti Linux e fondamenti di programmazione (Python, Node.js o Go). Una comprensione di base dei concetti e delle architetture delle applicazioni native per il cloud.