Real-life Kubernetes
Mokymų tikslas
Mokymuose nagrinėjamos dažniausiai naudojamos Kubernetes funkcijos. Praktinės užduotys ir realūs pavyzdžiai padeda susipažinti su paskirstytųjų programų diegimu, pagrindinių tinklo komponentų (apkrovos balansavimo priemonių ir tarpinių serverių) valdymu, nuolatinio duomenų saugojimo konfigūravimu, dinaminiu konfigūracijų valdymu ir kitomis pagrindinėmis Kubernetes galimybėmis.
Šioms temoms skirta nuosekli modulinė programa, kurios tikslai:
Suteikti išsamų supratimą apie konteineriuose veikiančių programų ir sistemų orkestravimą (angl. orchestration) bei valdymą Kubernetes aplinkoje.
Apžvelgti platų temų spektrą: pagrindinius architektūros komponentus, diegimo strategijas, tinklo ir duomenų saugyklų valdymą, konfigūracijų valdymą, išteklių kontrolę, saugumo protokolus ir pažangius Kubernetes eksploatavimo metodus.
Suteikti išsamių žinių ir praktinių įgūdžių pagal nuoseklią modulinę programą, kad dalyviai galėtų spręsti realius konteinerių orkestravimo ir mikropaslaugų valdymo iššūkius.
Padėti IT specialistams stiprinti Kubernetes kompetencijas ir žinias, rengiant juos Kubernetes administratorių, DevOps inžinierių ar sistemų patikimumo inžinierių (angl. Site Reliability Engineers) darbui.
Kam skirti mokymai
- Programuotojams
- Programinės įrangos architektams
- Techninių projektų vadovams
- Sistemų administratoriams.
Baigę mokymus gebėsite
- Suprasti ir paaiškinti Kubernetes klasterio architektūrą, įskaitant pagrindinių ir darbinių mazgų, etcd, kubelet bei valdiklių vaidmenis.
- Diegti, valdyti ir keisti konteineriuose veikiančių programų mastą naudojant Kubernetes, taikyti įvairias diegimo strategijas bei veiksmingai valdyti tinklo ir duomenų saugyklų išteklius.
- Įdiegti ir valdyti Kubernetes paslaugas, skirtas srautui nukreipti, apkrovai balansuoti ir paslaugoms aptikti, užtikrinant veiksmingą mikropaslaugų ryšį klasterių viduje ir tarp klasterių.
- Konfigūruoti ir valdyti nuolatinio duomenų saugojimo sprendimus Kubernetes aplinkoje, kad duomenys išliktų iš naujo paleidus Pod objektus (vieno ar kelių konteinerių grupes) ar atnaujinus sistemą.
- Naudoti Kubernetes konfigūracijų valdymo priemones, tokias kaip ConfigMaps ir Kustomize, bei valdyti slaptuosius duomenis, užtikrinant nuoseklias programų konfigūracijas skirtingose aplinkose.
- Įgyvendinti išteklių valdymo taisykles, automatinį išteklių didinimą ir mažinimą pagal poreikį bei užduočių paskirstymo mazgams algoritmus, siekiant optimizuoti išteklių naudojimą ir užtikrinti aukštą įdiegtų programų pasiekiamumą bei patikimumą.
- Stiprinti Kubernetes klasterio saugumą taikant vaidmenimis grindžiamą prieigos kontrolę (angl. role-based access control, RBAC), naudojant paslaugų paskyras ir taikant Pod saugumo bei tinklo taisykles, o prireikus – integruojant išorinių saugumo paslaugų teikėjų sprendimus.
- Taikyti pažangius Kubernetes aplinkos eksploatavimo metodus – naudoti Helm paketus (angl. Helm charts), Operator projektavimo šabloną ir pasirinktinių išteklių apibrėžtis (angl. Custom Resource Definitions), siekiant valdyti sudėtingus diegimus ir pasirinktinius išteklius.
- Analizuoti ir šalinti dažniausias Kubernetes aplinkos problemas naudojant įvairias derinimo ir diagnostikos priemones, užtikrinant sklandų kasdienį darbą bei priežiūrą.
Reikalavimai dalyviams
- Pagrindinis kompiuterių tinklų, aparatinės ir programinės įrangos sąvokų supratimas.
- Operacinių sistemų veikimo principų, ypač procesų, atminties ir failų sistemų, išmanymas.
- Darbo su Linux pagrįstomis operacinėmis sistemomis patirtis būtų naudinga, nes Kubernetes daugiausia veikia tokiose aplinkose.
- Konteinerizavimo sąvokų ir Docker technologijos supratimas būtų privalumas.
- Rekomenduojamos pagrindinės scenarijų rašymo arba programavimo kalbų, pavyzdžiui, Bash, Python ar Go, žinios, padedančios atlikti praktines mokymų užduotis.
Mokymų programa
Introduction
- Architecture overview: master node, worker nodes, etcd, kubelet, controllers.
- Anatomy of a pod: the main container, init containers, sidecars, labels, probes.
- Basic commands and debugging tricks.
- Practice: Deploy an application as a Pod with the primary process, implement initialization logic executed in init containers, add watchdog containers and probes.
Deployments and Services
- Anatomy of a deployment: types of deployments, replica set, replica count.
- Introduction to Kubernetes networking.
- Anatomy of a service: traffic routing, labels, port mapping.
- Service types: node port, cluster IP, load balancer.
- Anatomy of kubeproxy.
- Introduction to service meshes.
- Practice: Configure application traffic routing, implement different service types, implement canary release procedure.
Storage
- Persistent volumes: volume types, volume resizing, volume snapshots.
- Working with complex deployments: stateful sets
- Job and Cron-jobs.
- Practice: Configure stateful deployment for an HA database (PostgreSQL or MariaDB); configure an HA caching layer (Redis) for your application; implement a scheduled backup procedure for an HA database
Configuration Management
- Configuration management: config maps, reloadable configurations.
- Deployment time configuration injection with Kustomize.
- Secrets management and integration with service discovery service (Consul and Vault).
- Introduction into Kubernetes admission webhooks and cluster events.
- Practice: Implement two environments (applications + data storage) running in different namespaces with different settings, implement automatic configuration propagation at run time using different mechanisms.
Resource Control and Scheduling
- Resource management: resource requests and limits.
- Anatomy of a node pool.
- Taints and tolerations, scheduling internals.
- Dive into built-in resource monitoring and metrics.
- Auto-scaling policies and range limiters.
- Practice: Adjust resource limits for existing deployments; implement auto-limit and auto-scaling policies.
Security
- Cluster security with RBAC, service accounts, cluster roles, namespace security.
- Integrating with external security providers.
- Pod security and network policies.
- Practice: Implement cross-environment security policies with the help of service accounts and external LDAP integration; limit network traffic between pods.
Advanced Operations
- Day-1 vs. Day-2 operations.
- Introduction to Helm charts.
- Introduction to Operator pattern.
- Custom resource definitions.
- Practice: Implement operator from a given template with Bash or Python.
Mokymų medžiaga
Mokymų skaidrės ir programinis kodas. Nuotolinių užsiėmimų vaizdo įrašai bus prieinami 1 mėnesį po mokymų.
Lektorius
Andrejs Adamovičs
Planuojami mokymai ir tvarkaraštis
Mokymai vyks nuotoliniu būdu.
Mokymai įgyvendinami LOGIN Academy partnerio Baltijas Datoru Akadēmija