Kursplan
Dag 1 – Containere og bildehåndtering
Innføring i containerplattformer
- Tradisjonell applikasjonsdistribusjon sammenlignet med distribusjon basert på containere
- Containere og virtuelle maskiner
- Container-tidslinjer (runtimes) og containermotorer
- Rolle til Docker, Kubernetes og OpenShift
- Vanlige arkitekturer for containerplattformer
- Arbeidsflyter for utvikling, testning og produksjon
Arbeid med containere
- Kjøre og håndtere containere
- Containerens levetid
- Starte, stoppe og fjerne containere
- Kjøre kommandoer inne i containere
- Miljøvariabler
- Kartlegging av porter
- Containerlogger
- Ressursbruk og prosessinspeksjon
Bygge containerbilder
- Bildets struktur og lag
- Lage Dockerfiles og Containerfiles
- Velge grunnleggende bilder
- Legge til applikasjonsavhengigheter
- Konfigurere oppstartspunkter (entry points) og kommandoer
- Bildebufring
- Redusere bildestørrelse
- Bygge reproducerbare bilder
Containerregistre
- Offentlige og private registre
- Tagging og versjonering av bilder
- Laste opp (push) og hente (pull) bilder
- Bildeautentisering
- Bildets beholdning og rengjøring
- Grunnleggende sikkerhetsaspekter for bilder
Containernettverk og lagring
- Konsepter for containernettverk
- Bridge-nettverk
- Eksponering av porter
- Kommunikasjon mellom container
- Bind mounts og volumer
- Vedvarende containerdata
- Hensyn til sikkerhetskopiering
Praktiske øvelser
- Kjør og inspeksjoner containere
- Bygg et applikasjonsbilde
- Konfigurer porter og miljøvariabler
- Publiser et bilde til et register
- Lagre vedvarende data utenfor en container
Dag 2 – Kubernetes-arkitektur og arbeidsbyrder
Kubernetes-fundamenter
- Hensikten med container-coordinering (orchestration)
- Kubernetes-arkitektur
- Kontrollplane-komponenter
- Arbeidsknuter (worker nodes)
- API-server
- Scheduler
- Kontrollere (controllers)
- Klusterets tilstand og ønsket tilstand
- Kommunisere med klusteret ved hjelp av kubectl
Kubernetes-ressurser
- Pods
- ReplicaSets
- Deployments
- Namspaces (rom)
- Etiketter og annoteringer
- Velgere (selectors)
- Deklarative ressurdefinisjoner
- YAML-manifester
Distribusjon av applikasjoner
- Opprette og administrere Deployments
- Skale arbeidsbyrder
- Oppdatere containerbilder
- Rullerende oppdateringer
- Rullering tilbake (rollback)
- Deployments historie
- Omstart av arbeidsbyrder
- Håndtering av applikasjonsreplikaer
Applikasjonskonfigurasjon
- ConfigMaps
- Secrets
- Miljøvariabler
- Konfigurasjonsfiler
- Adskille applikasjonskode fra konfigurasjon
- Håndtere miljøspesifikke innstillinger
Ressurshåndtering
- CPU- og minneforespørsler
- CPU- og minnegrenser
- Resurskvoter
- Grenseområder (limit ranges)
- Schedulingskonsekvenser
- Få diagnosen på feil relatert til ressurser
Praktiske øvelser
- Distribuer en containerisert applikasjon
- Lag og oppdater Kubernetes-manifester
- Skaler en applikasjon
- Utfør en rullerende oppdatering og rullering tilbake
- Konfigurer applikasjonen ved hjelp av ConfigMaps og Secrets
- Anvend resursforespørsler og grenser
Dag 3 – Kubernetes-nettverk, lagring og sikkerhet
Kubernetes-nettverk
- Modell for klusternetverk
- Kommunikasjon fra pod til pod
- Tjenestedekning (service discovery)
- DNS inne i klusteret
- ClusterIP-tjenester
- NodePort-tjenester
- LoadBalancer-tjenester
- Ingress-konsepter
- Mønstre for applikasjonseksplosjon
Nettverkspolicyer
- Kontrollere trafikk mellom arbeidsbyrder
- Ingress- og egress-regler
- Trafikkstyrring basert på namespace
- Testing av nettverkskobling
- Feilsøking av tjenestekommunikasjon
Vedvarende lagring
- Ephemeral og vedvarende lagring
- Volumer
- PersistentVolumes
- PersistentVolumeClaims
- StorageClasses
- Dynamisk provisioning
- Tilgangsmåter (access modes)
- Gjenopprettingspolicyer (reclaim policies)
- Lagring for statiske applikasjoner
Kubernetes-tilgangskontroll
- Konsepter for autentisering og autorisasjon
- Rollebasert tilgangskontroll (RBAC)
- Roles og ClusterRoles
- RoleBindings og ClusterRoleBindings
- Tjenestebrukerkontoer
- Minst privilegert tilgang
- Inspeksjon av effektive tillatelser
Sikkerhet for arbeidsbyrder
- Sikkerhetskontekster
- Kjøre containere som ikke-root
- Linux-privilegier (capabilities)
- Skrivebeskyttede filsystemer
- Håndtering av hemmeligheter (secrets)
- Bildets opprinnelse
- Vanlige konfigurasjonsrisikoer
Praktiske øvelser
- Eksplosjon av en applikasjon ved hjelp av Kubernetes-tjenester
- Konfigurer ingress
- Begrens trafikk ved hjelp av en nettverkspolicy
- Provisioner vedvarende lagring
- Konfigurer RBAC-tillatelser
- Kjør en arbeidsbyrde med en passende sikkerhetskontekst
Dag 4 – Arbeid med OpenShift-miljøer
Innføring i OpenShift
- OpenShift som en Kubernetes-basert applikasjonsplattform
- Kubernetes-ressurser i et OpenShift-miljø
- OpenShift klusterarkitektur
- Prosjeckter og namespaces
- Platformbrukere og tjenestebrukerkontoer
- Arbeid med nettbasert konsoll
- Arbeid med OpenShift CLI
Håndtering av prosjekter og tilgang
- Opprette og administrere prosjekter
- Tilordne bruker tillatelser
- Roller på prosjektnivå
- Administrativ tilgang
- Resurskvoter
- Grenseområder (limit ranges)
- Tjenestebrukerkontoer
- Gjennomgå prosjektressurser
Distribusjon av applikasjoner
- Distribuer containerbilder
- Opprette applikasjonsarbeidsbyrder
- Håndtere deployments
- Skale applikasjoner
- Oppdatere applikasjonversjoner
- Rullering tilbake
- Håndtering av applikasjonskonfigurasjon
- Arbeid med secrets
Applikasjonseksplosjon
- Tjenester i OpenShift
- Rutes (Routes)
- TLS-konsepter
- Intern og ekstern tilgang til applikasjoner
- Vertsnavn og sertifikater
- Få diagnose på rute- og tjenesteproblemer
Lagring i OpenShift
- Persistent Volume Claims
- StorageClasses
- Koble lagring til arbeidsbyrder
- Statisk arbeidsbyrder
- Lagringsatilgangstillatelser
- Feilsøking av montering av volumer
Scheduling og knuthåndtering
- Etiketter og velgere
- Knutvelgere
- Taints og tolerasjoner
- Affinity og anti-affinity-konsepter
- Plassering av arbeidsbyrder
- Cordering og draining av knuter
- Hensyn til knutvedlikehold
Praktiske øvelser
- Få tilgang til et OpenShift-miljø
- Lag og konfigurer et prosjekt
- Distribuer og eksplos en applikasjon
- Konfigurer bruker- og tjenestebrukertilgang
- Koble vedvarende lagring
- Skaler og oppdater en kjørende arbeidsbyrde
Dag 5 – Drift, overvåking og feilsøking
Platformovervåking
- Overvåking av klusterets og applikasjonens helse
- Resursmetrikker
- Knuthelse
- Arbeidsbyrdestatus
- Kapasitet og ressursoversikt
- Identifisering av ytelsesbegrensninger
Logging og hendelser
- Containerlogger
- Pod-logger
- Tidligere containerlogger
- Kubernetes-hendelser
- Applikasjons- og platformmeldinger
- Filtrering og tolkning av operasjonelle data
Helsekontroller
- Startup-prober
- Readiness-prober
- Liveness-prober
- Utvikling av nyttige helseendepunkter
- Få diagnose på proberfeil
- Unngå unødvendige omstarter av applikasjoner
Feilsøking av arbeidsbyrder
- Pending pods
- Bildefeilkasting (image pull failures)
- Krasjsirkler
- Miskonfigurerte miljøvariabler
- Feilaktige monteringer
- Utilstrekkelige ressurser
- Tillatelsesfeil
- Koblingsproblemer med tjenester og ruter
- DNS-problemer
- Aplikasjonsstartsvikt
Operasjonell sikkerhet
- Gjennomgang av tillatelser
- Bruk av tjenestebrukerkontoer
- Sikker håndtering av legitimasjon
- Bildesikringspraksis
- Nettverksisolering
- Auditing av platformtilgang
- Anvende prinsippet om minst privilegert tilgang
Vedlikehold og livssykelhåndtering
- Rutinemessige plattformkontroller
- Knutvedlikehold
- Hensyn til applikasjonssikkerhetskopiering
- Konfigurasjons sikkerhetskopiering
- Oppdateringsplanlegging
- Endringshåndtering
- Testing av oppdateringer
- Planlegging av rullering tilbake
- Konsepter for katastrofeforbedring
Avsluttende praktisk verksted
Deltakerne fullfører en end-to-end operasjons scenario:
- Bygg og tagg et containerbilde.
- Publiser bildet til et register.
- Distribuer applikasjonen til Kubernetes eller OpenShift.
- Konfigurer applikasjonsinnstillinger og legitimasjon.
- Eksplos applikasjonen.
- Koble vedvarende lagring.
- Konfigurer tilgangstillatelser.
- Legge til helsekontroller.
- Skaler og oppdater applikasjonen.
- Få diagnose og løse en introdusert feil.
Kursformat
- Interaktive forelesninger og tekniske diskusjoner.
- Instruktørdemonstrasjoner.
- Uttømmende praktiske øvelser.
- Szenariobaserte administrator- og feilsøkingsverksteder.
- Praktisk arbeid i container-, Kubernetes- og OpenShift-miljøer.
Kurstilpasningsalternativer
- Kursene kan tilpasses deltakerens eksisterende infrastruktur, skytilbyder og containertools.
- Balansen mellom Docker-, Kubernetes- og OpenShift-emner kan justeres i henhold til teamets erfaring.
- Praktiske øvelser kan tilpasses organisasjonens applikasjoner, distribusjonsprosesser og driftskrav.
Varemerkevarsel
OpenShift er et varemerke for Red Hat, Inc. Denne uavhengig utviklede opplæringen er ikke tilknyttet, godkjent eller autorisert av Red Hat.
Krav
Deltakerne bør ha:
- Erfaring med å bruke Linux-kommandolinjen.
- Grunnleggende kunnskap om systemadministrasjon eller DevOps.
- Generell forståelse av nettverkskonsepter.
- Kjentskap til prosesser for programvaredistribusjon.
Tidligere erfaring med Docker, Kubernetes eller OpenShift er nyttig, men ikke et krav.
Referanser (7)
Les forklaringene og han forenklet mye av forståelsen
Eric Van Wyk
Kurs - Docker, Kubernetes and OpenShift 3 for Administrators
Maskinoversatt
Labene var beste. De er meget praktiske og gir håndhevingserfaring. Jeg tror personlig at det er den mest effektive måten å virkelig forstå emnet og anvende konseptene som ble dekket.
Hishaam Johnstone
Kurs - Docker, Kubernetes and OpenShift 3 for Administrators
Maskinoversatt
Jeg elsket villingen til å hjelpe og forklare mer når det var usikkre
Letlotlo Miffi
Kurs - Docker, Kubernetes and OpenShift 3 for Administrators
Maskinoversatt
Adriano studerte emnet meget grundig, noe som er stilstanden jeg foretrekker mest, nemlig: mindre fokus på kommandoer og mer på mekanismen bak det. Diskuterte scenarier ble godt støttet av praktiske eksempler, noe som hjalp veldig til med å forstå det presenterte materialet.
Mariusz BANASZCZYK - Sopra Steria
Kurs - Docker, Kubernetes and OpenShift for Administrators
Maskinoversatt
Dyppe kunnskap om Adriano. Forklaring av grunnleggende konsepter
Tomasz Szalankiewicz - LPP SA
Kurs - Docker, Kubernetes and OpenShift for Administrators
Maskinoversatt
Jeg likte generelt foredragsholderen.
Josif Kovacevic - ANZ
Kurs - Docker, Kubernetes and OpenShift for Administrators
Maskinoversatt
Adrian clearly knows and enjoys this technology.
Tom Edginton - National Oceanography Centre
Kurs - Docker, Kubernetes and OpenShift for Administrators
Maskinoversatt