Dit jaar heeft Plesk besloten om verschillende mensen naar KubeCon te sturen — het belangrijkste evenement over Kubernetes ter wereld. Er zijn geen specifieke conferenties over dit onderwerp in Rusland. Natuurlijk praten we over K8s, en iedereen wil het, maar zoveel bedrijven die het toepassen verzamelen zich nergens meer op één plek. Ik was een van de deelnemers, omdat ik aan een platform werk dat gebaseerd is op Kubernetes.
Over de organisatie
De omvang van de conferentie is indrukwekkend: 7000 deelnemers, een enorm congrescentrum. Het kostte 5-7 minuten om van de ene zaal naar de andere te lopen. Er waren tegelijkertijd 30 presentaties over verschillende onderwerpen. Er waren een enorme hoeveelheid bedrijven met hun stands, waarbij veel prijspakketten van goede en uitstekende prijzen werden weggegeven, evenals allerlei leuke dingen zoals T-shirts, pennen en andere hebbedingetjes. Alle communicatie was in het Engels, maar ik had daar geen problemen mee. Als dit de enige reden is waarom je niet naar buitenlandse conferenties gaat, ga dan gerust. Engels in IT is makkelijker dan normaal Engels vanwege de overvloed aan vertrouwde woorden die je dagelijks in code en documentatie schrijft en leest. Ook had ik geen problemen met het begrijpen van de presentaties. Er was veel informatie die in mijn hoofd was geprent. Aan het eind van de dag voelde ik me als een server die was gekraakt door een bufferoverflow, en informatie werd onmiddellijk in mijn onderbewustzijn gedumpt.
Over de presentaties
Ik wil kort vertellen over de presentaties die ik het leukst vond en die ik zou aanraden om te bekijken.
Deze presentatie maakte een sterke indruk op me omdat deze een diepe pijn aansprak. We hebben veel gescheiden diensten, die door verschillende mensen in het team worden ondersteund en ontwikkeld. We volgen de benadering van infrastructuur als code, maar er zijn enkele onopgeloste problemen. Er is een repository met code op Ansible, maar de huidige status en inventaris worden opgeslagen op de machine van de ontwikkelaar die het script uitvoert, daar zijn ook de inloggegevens. Sommige informatie is te vinden in Confluence, maar het is niet altijd duidelijk waar. Er is geen plek waar je gewoon op een knop kunt drukken en alles goed is. Het wordt voorgesteld om niet alleen de code, maar ook de implementatietools in de repository te beschrijven. Omschrijf waar je de status en inloggegevens kunt vinden, voer 'make Install' uit en geniet van het resultaat. Ik zou graag meer orde in de diensten willen, ik zal de releases van CNAB volgen, het bij mij implementeren en anderen overtuigen. Een goed model voor het opstellen van een Readme in de repository.
Er is veel informatie over obstakels bij het schrijven van operators. Ik beschouw deze presentatie als verplicht voor iedereen die van plan is zijn eigen operator voor Kubernetes te schrijven. Alle zaken zoals statussen, garbage collection, concurrentie en nog veel meer zijn in overweging genomen. Zeer informatief. Ik vond de citaat uit de code van persistent volumes in Kubernetes erg leuk:
K8s bepleit de complexiteit van integratie ten behoeve van de eenvoud van implementatie.
Deze presentatie belicht in detail een van de belangrijkste architectonische elementen van een cluster — het control plane, namelijk een set controllers. Hun rol en architectuur worden beschreven, evenals de basisprincipes voor het maken van je eigen controller aan de hand van bestaande voorbeelden.
Een van de meest originele momenten is de aanbeveling om inconsistenties niet te verbergen achter correct gedrag van de controller, maar om het gedrag op een bepaalde manier te veranderen om het systeem te signaleren dat er problemen zijn.
Zeer interessante ervaring, veel informatie met recepten over wat je moet overwegen wanneer je echt een hoge belasting hebt. Ze hebben goed in Kubernetes gegraven en ondersteunen 50 clusters. Ze bespraken alle aspecten van het maximaliseren van prestaties. Ik raad aan deze presentatie te bekijken voordat je technische beslissingen over clusters neemt.
Het rapport dat me deed beseffen dat je Loki absoluut moet proberen voor logs in een cluster en waarschijnlijk bij hem moet blijven. De essentie: Elasticsearch is zwaar. Grafana wilde een lichte, schaalbare oplossing ontwikkelen, geschikt voor het debuggen van problemen. De oplossing is elegant: Loki haalt metadata (labels, zoals Prometheus) uit Kubernetes en legt de logs daarop uit. Zo kun je delen van de log per service selecteren, een specifieke pod vinden, een specifieke tijd kiezen en filteren op foutcode. Deze filters werken zonder full-text zoekopdrachten. Zo kun je, door geleidelijk de zoekscope te verkleinen, bij de specifieke fout komen die je nodig hebt. Aan het einde wordt de zoekfunctie wel ingeschakeld, maar omdat de scope al verkleind is, is een snelle zoekactie zonder indexering voldoende. Bij het klikken op de resultaten wordt de context geladen — een paar regels voor en een paar regels log na. Zo lijkt het op het zoeken naar een logbestand en het greppen daarin, maar het is iets gebruiksvriendelijker en vindt plaats in dezelfde interface als waar de metrics zijn. Het kan het aantal keren dat de zoekopdracht voorkomt tellen. De zoekopdrachten zelf lijken op de taal van Prometheus en zien er eenvoudig uit. De spreker vestigde onze aandacht op het feit dat de oplossing niet erg geschikt is voor analytics. Ik raad iedereen die logs nodig heeft sterk aan om dit te bekijken, het is een zeer eenvoudige presentatie.
De processen van canary en blue-green deploy zijn zeer visueel weergegeven. Ik raad de presentatie aan voor degenen die hier nog niet mee bekend zijn. De sprekers presenteren de oplossing in de vorm van een uitbreiding voor het veelbelovende CI-CD-systeem ARGO. De Engelse spraak van de spreker uit Rusland is gemakkelijker te luisteren dan die van de andere sprekers.
Een van de moeilijkste aspecten van clusterbeheer blijft het instellen van beveiliging, met name de toegangsrechten tot resources. De ingebouwde primitieve K8s-structuren stellen je in staat om autorisatie in te stellen, zoals je wilt. Hoe houd je ze op een handige manier up-to-date? Hoe begrijp je wat er gebeurt met de toegangsrechten, en hoe debug je de gemaakte rollen? In deze presentatie wordt niet alleen een overzicht gegeven van verschillende tools voor autorisatie-debugging in K8s, maar worden ook algemene aanbevelingen gedaan voor het opstellen van eenvoudige en effectieve beleidslijnen.
Andere presentaties
Ik zal het niet aanraden. Sommige waren captains, andere waren juist heel moeilijk. Ik raad aan om deze afspeellijst te bekijken en alles te zien dat gemarkeerd is als keynote. Dit zal een breed perspectief bieden op de industrie rond Cloud Native Apps, en daarna moet je ctrl+f gebruiken om naar interessante zoekwoorden, bedrijven, producten en benaderingen te zoeken.
Hier is de link naar de afspeellijst met lezingen, let erop.
Over de stands van bedrijven
Bij de stand van Haproxy kreeg ik een T-shirt voor mijn zoon. Ik twijfel of ik hierdoor Nginx zal vervangen door haproxy in productie, maar ik herinner me ze het sterkst. Wie weet wat de nieuwe eigenaren van Nginx gaan doen.
Bij de stand van IBM waren er drie dagen lang korte lezingen, en ze trokken mensen aan door Oculus Go, Beats-koptelefoons en een drone te verloten. Je moest elke half uur op de stand zijn. Twee keer in drie dagen heb ik het geluk geprobeerd — ik won niet. Er waren ook korte lezingen bij VMWare en Microsoft.
Bij de stand van Ubuntu deed ik wat blijkbaar iedereen deed — ik maakte een foto met Shuttleworth. Een sociale man, hij was blij te horen dat ik het gebruik sinds 8.04 en dat de server 10 jaar heeft gedraaid zonder dist upgrade zonder een enkel probleem (hoewel zonder toegang tot het internet).
Ubuntu ontwikkelt zijn MicroK8s — Snel, Licht, Upstream Developer Kubernetes
Ik kon de vermoeide Dmitry Stolyarov niet voorbij lopen, ik sprak met hem over de zware dagen van ingenieurs die Kubernetes ondersteunen. Hij zal de lezingen aan zijn collega's delegeëren, maar hij bereidt een nieuw formaat voor de presentatie van materiaal voor. Hij riep op om zich te abonneren op het Flant-kanaal op youtube.
Er is veel geld in de stands gestoken door IBM, Cisco, Microsoft, VMWare. De stands van de open-source vrienden waren bescheiden. Ik sprak bij de stand met vertegenwoordigers van Grafana, ze overtuigden me — ik moet Loki proberen. Het lijkt erop dat full-text search in het loggend systeem alleen nodig is voor analytics, terwijl je voor troubleshooting voldoende hebt aan systemen zoals Loki. Ik sprak met de ontwikkelaars van Prometheus. Ze zijn niet van plan om langdurige opslag van metrics en downsampling van gegevens te doen. Ze raden aan om cortex en thanos te bekijken als oplossing. Er waren veel stands; je had een hele dag nodig om iedereen te bezoeken. Tientallen oplossingen voor monitoring als service. Vijf beveiligingsdiensten. Vijf performance-diensten. Tientallen UI voor Kubernetes. Veel aanbieders van k8s als service. Iedereen wil een stuk van de markt.
Amazon en Google hebben daktuinen met kunstgras gehuurd, waar ze ligbedden hebben geplaatst. Amazon gaf bekers weg en schonk limonade, terwijl ze bij hun stand vertelde over innovaties in het werken met spot-instanties. Google gaf koekjes met het Kubernetes-logo weg en maakte een leuke fotohokje, terwijl ze bij hun stand vissen op grote enterprise vissen.
Over Barcelona
Verliefd op Barcelona. Ik was er voor de tweede keer, de eerste keer in 2012 tijdens een rondleiding. Het is verbazingwekkend, maar veel feiten kwamen terug in mijn geheugen; ik kon veel vertellen aan mijn collega’s, ik was een mini-gids. De schone zeelucht heeft me onmiddellijk van mijn allergie afgeholpen. Heerlijke zeevruchten, paella, sangria. Zeer warme, zonnige architectuur. Lage gebouwen, veel groen. We hebben de afgelopen drie dagen ongeveer 50 kilometer te voet afgelegd; in deze stad wil je blijven wandelen. Dit alles na de presentaties, 's avonds.
Wat ik het belangrijkste heb begrepen
Ik ben heel blij dat ik de kans kreeg om deze conferentie bij te wonen. Het heeft duidelijk gemaakt wat eerder niet duidelijk was. Het heeft me geïnspireerd en enkele zaken vanzelfsprekend gemaakt.
Een rode draad die naar voren kwam: Kubernetes is geen eindpunt, maar een hulpmiddel. Een platform voor het creëren van platforms.
En de belangrijkste taak van de hele beweging: het verzamelen en draaien van schaalbare applicaties
De belangrijkste richtingen waar de gemeenschap aan werkt, zijn verduidelijkt. Bijna zoals de 12 principes voor applicaties ooit werden ontwikkeld, is er een lijst verschenen van wat en hoe te doen voor infrastructuur in het algemeen. Als je wilt, kun je dit trends noemen:
- Dynamische omgevingen
- Public, hybride en private clouds
- Containers
- Service mesh
- Microservices
- Immutable infrastructure
- Declarative API
Deze technieken stellen je in staat om systemen met de volgende kenmerken te bouwen:
- Beschermd tegen dataverlies
- Elastic (zich aanpassend aan de belasting)
- Onderhoudbaar
- Observeerbaar (de drie pijlers: monitoring, logging, tracing)
- De mogelijkheid hebben om serieuze veranderingen vaak en voorspelbaar veilig door te voeren.
CNCF selecteert de beste projecten (een korte lijst) en pleit voor dergelijke zaken:
- Gezonde automatisering
- Open code
- Vrijheid in het kiezen van een dienstverleningsprovider
Kubernetes is complex. It is straightforward ideologically and in pieces, but overall it is complicated. No one has presented an all-in-one solution. In the market for k8s as a service, as well as in the entire market, it’s a wild west: support is sold for both $50 and $1000 a month. Everyone delves into a specific area and digs into it. Some focus on monitoring and dashboards, others on performance, and some on security.
K8S, it’s just the beginning!
Bron: habr.com
