Sverige
KubeCon konferens

KubeCon + CloudNativeConf Europe 2022

Introduktion

Konferensen KubeCon + CloudNativeConf Europe 2022 (”KubeCon”) gick av stapeln den 18-20 maj i Valencia, Spanien. Konferensen arrangeras av Cloud Native Computing Foundation (CNCF) som är en paraplyorganisation med diverse projekt under, däribland containerorkestreringsverktyget Kubernetes. I vår relativt nystartade enhet DevOps & Automation på Sopra Steria ser vi Kubernetes som en central del både i nuvarande och framtida uppdrag. KubeCon kändes därför som en högst relevant konferens att delta på för att ta del av vad som händer inom Kubernetes och det omgivande ekosystemet. Min egen erfarenhet kring Kubernetes sträcker sig till ett par års arbete med containerteknologier i konsultuppdrag och ett intresse för Kubernetes och dess synnerligen väletablerade roll såväl on-prem som i molnbaserade lösningar. Mer än så kände jag inte till tidigare men det blev tydligt för mig under konferensdagarna hur CNCF är organiserat och det stora antalet projekt som utgör organisationen. Förutom Kubernetes är flera av projekt dominerande inom respektive område, t.ex. Prometheus (observability), Argo och Flux (continuous delivery), Linkerd (service mesh), Helm (application definition), m.fl.

image

Presentationer

Totalt fanns hundratals olika presentationer att ta del av så de 20 jag hade möjlighet att vara med på utgör endast ett litet stickprov.

 En intressant presentation hette “Effective Disaster Recovery: The Day We Deleted Production”. Företaget bakom presentationen tillhandahåller en PaaS-lösning som tillämpar continuous deployment. Genom en olycklig ändring i en Infrastructure as Code-fil misstogs produktionsmiljön för testmiljö och raderades helt. Genom ett professionellt och metodiskt analysarbete kunde orsaken snabbt hittas och produktionsmiljön återställas från backup. Visa av erfarenheten rekommenderar man till andra att genomföra täta disaster recovery-övningar samt agera lugnt och metodiskt. T.ex. bör man inte reflexmässigt rulla tillbaka den senaste ändringen utan att först göra en analys av vad som verkligen skett.

En insikt som återkom i flera presentationer är risken med s.k. Single Maintainer Dependencies, dvs. att vara beroende av projekt som underhålls av en eller ett fåtal personer. Risken finns att dessa individer plötsligt överger projektet eller i värsta fall raderar dess historik. Följden blir att säkerhetsluckor inte åtgärdas vilket i sin tur leder till att andra lösningar som har ett beroende till projektet blir sårbara för attacker. Det är ett svårt problem att lösa men det rekommenderas att man gör en bakgrundskoll på de ansvariga innan man förlitar sig på ett projekt. Det är även viktigt att begränsa höga behörighteter till ett fåtal pålitliga projektadministratörer.

Vissa dragningar fokuserade på att beskriva specifika features hos Kubernetes. En stor fördel hos Kubernetes är dess förmåga till autoscaling vilket innebär att kapaciteten i klustret vid behov kan skalas upp (mer CPU och/eller minne till poddarna) eller skalas ut (fler poddar). En presentation fokuserade på utskalning, s.k. horizontal pod autoscaling och gav tips och råd på hur detta bör konfigureras beroende på applikationens karaktär. T.ex. bör en applikation med korta, täta spikar i belastningen konfigureras med en längre stabiliseringsperiod för att minska omsättningen av poddar. I en annan presentation förklarades principerna bakom monitoreringssystemet Prometheus och den nya funktionalitet som snart kommer där. I en annan lite längre session med praktiska övningar gicks principerna för nätverk i Kubernetes igenom. I ytterligare en presentation beskrevs CNCF-projektet Cilium som är en variant av service mesh.

Hur ny funktionalitet hos ett Kubernetes kubectl-kommando kan bli till demonstrerades i en annan presentation. Många användare hade rapporterat att kubectl-kommandot events returnerade en lista av event i till synes slumpvis ordning. Ett inrapporterat ärende med önskan om att eventen skulle presenteras i tidsordning hade funnits länge men ingen hade kommit med en lösning. Presentatören hade tagit sig an problemet och konstaterat att orsaken var att events i själva verket fanns av olika typer med olika datastrukturer. Genom att utgå från principerna för existerande kubectl-kommandon och bygga en API server-request som tog hänsyn till de olika eventtyperna kunde problemet lösas. Möjligheten för vem som helst att ta sig an och lösa ett konstaterat problem visar på styrkan i open source och Kubernetes-communityn.

En fördel med Kubernetes är att det går att köra på många olika plattformar inklusive olika molnlösningar. Om man har behov av att köra sin applikation hos flera molnleverantörer samtidigt finns det en del att ta hänsyn till. T.ex. är det en fördel att välja en lösning som går att automatisera enkelt, som är moln-agnostisk (fungerar liknande oavsett molnleverantör) och är möjlig att utöka. För att uppnå detta rekommenderades Cilium för nätverkskonfiguration, NATS JetStream för event streaming och CockroachDB som databas.

image

Priset för att köra ett Kubernetes-kluster i molnet kan bli högt och det är därför viktigt att ta kontroll över kostnaderna. Ett sätt är att använda sig av s.k. spot-instanser vilket är oanvänd beräkningskapacitet i molnet som säljs till rabatterat pris. Detta kan vara passande om ens applikation har möjlighet att stänga ned en del av sina resurser med kort varsel då beräkningskapaciteten i molnet behövs av andra, fullbetalande kunder.

Kubernetes är känt för att vara komplext och tidskrävande att lära sig. I en session låg fokus på vad som är gemensamt och individuellt avseende vi hur vi bäst tar till oss ny kunskap. Gemensamt är att vi iterativt genomgår en lärandeloop. I denna ingår att samla in information, skumma igenom informationen, förfina/utöka informationen och därefter lära och befästa informationen. Individuella skillnader i hur vi föredrar att lära beskrevs med VARK-modellen. VARK står för Visual (lär sig bäst genom att iaktta), Auditory (lär sig bäst genom att höra någon berätta), Reading/Writing (lär sig bäst genom att läsa och skriva) och Kinesthetic (lär sig bäst genom att göra saker hands-on).

En dansk student inom datavetenskap berättade om sin egen utveckling från att vara student till att bli SRE (Site Reliability Engineer) och hur han välkomnats in CNCF-communityn där han tidigt kunnat bidra med både kod och dokumentation i olika CNCF-projekt.

image

Mingel

Man får inte glömma bort den sociala aspekten av att delta i konferenser fysiskt på plats. Utöver presentationerna fanns två gigantiska mässhallar fyllda med montrar från leverantörer av produkter till Kubernetes och CNCF:s hela projektflora. Där gavs möjligheten att ställa ingående frågor till utvecklarna, delta i tävlingar och samla på sig swag såsom T-shirts, kaffemuggar och en massa annat.

På kvällarna efter dagens presentationer bjöds det på mingel med buffé och dryck. Under onsdagen var det s.k. booth crawl där man fick ytterligare möjlighet att prata med utställarna på mässan. På torsdagskvällen bussades samtliga 7500+ deltagare till en apelsingård på landsbygden utanför Valencia. Där bjöds det på bufféer från olika delar av världen, dryck och underhållning i form av bl.a. DJ ackompanjerad av elfiol och jazzsångerska med sitt band.

Sammanfattningsvis var det en mycket väl arrangerad konferens som förmedlade den öppna och välkomnande kultur som präglar CNCF:s community. Dessutom öppnades mina ögon för många av CNCF:s olika projekt och vad de kan erbjuda oss som leverantörer av lösningar i molnet och med Kubernetes.

test

Andreas Erlandsson