Social Media, to dla mnie przestrzeń pełna tajemnic 😊 Dużo lepiej porusza się tu @Ewa, ale i ja czasem pozwalam sobie na jakieś publikacje. I chociaż zdecydowanie od glamour, wolę konkretną pracę na zapleczu, 😉 dobrze wiecie, że najbardziej doceniane jest, to co widać na front endzie. Jako “ojciec-założyciel” naszej organizacji, wypada więc bym od czasu do czasu przemówił i skierował Waszą uwagę na to, co robię z moim team’em 😀

Okazja ku temu jest doskonała, bo w przyszłym miesiącu miną 2 lata od momentu, gdy na poważnie, zespołowo zaangażowaliśmy się w projekt Kubernetesa.

Przez ten okres nie tylko przeprowadziliśmy kilka ciekawych wdrożeń VMware Tanzu Kubernetes (w wersji “with vSphere” jak i TKGM), ale też zmigrowaliśmy kilka pokaźnych aplikacji na te środowiska. Rozwijamy też własne moduły do “Keight’s”‘a”😉: tak, tak tworzymy bowiem własny Container Storage Interface (o nim jeszcze będzie w przyszłości więcej) i utrzymujemy własną platformę K8S, która zdążyła wyjść z mikroK8S’a i przesiąść się na Vanila K8S (o tym też w przyszłości).

Stąd myślę, że mogę śmiało powiedzieć, że przynajmniej 4 osoby w naszym zespole są naprawdę znawcami tego narzędzia. Oczywiście wiadomo, że “całe życie człowiek się uczy”, ale to właściwy moment, by powiedzieć o tym, że jest to fascynujące narzędzie.

A co w nim takiego fascynującego? Oooo… tutaj musiałbym porządnie się pochylić i wymieniać jego cechy, opisywać je, uzasadniać itd. itp. Pomyślałem sobie, że będzie lepiej jak wesprę się Zespołem 🙂

Poniższe wypowiedzi spisałem podczas rozmów 1:1, naturalne, zapisane tak jak były wypowiadane, bez korekty. Poczytajcie.

Kacper

Co Cię fascynuje w K8s?

Co mnie fascynuje w K8s? Że ten projekt jest tak duży i otwartoźródłowy. Podoba mi się, że kod jest otwarty i można do niego zajrzeć. Można zobaczyć każdy komponent na własne oczy, a nie tylko w teorii. Bardzo podoba mi się dokumentacja: obszerna tłumaczy wszystko. Kubernetes bardzo szybko się zmienia i trzeba być na bieżąco, ale ma super mechanizmy z wersjonowaniem. Można iść do przodu nie tracąc kompatybilności. Bardzo mi się podoba zakres możliwości jaki daje K8s. Praktycznie możemy zautomatyzować wszystko. I jednocześnie mieć pewność, że będzie zapewnione HA. Ten kube-apiserver (i więcej kluczowych komponentów, dop. red.) jest zreplikowany na węzłach control plane’a. Przejrzystość operatorów i zarządzanie zasobami. Jest to ujednolicone przez API i obiekty, które są trzymane w etcd. Każdy kto jest zainteresowany tworzeniem rozwiązania opartego na K8s może tworzyć swoje kontrolery/operatory, które pozwalają na elastyczne zarządzanie stanem takiego klastra.

Fascynuje mnie to, że (K8s) daje narzędzia, które pozwalają na interakcje z komponentami fizycznych węzłów i fizyczną infrastrukturą. To jest ta elastyczność, która pozwala na tworzenie specyficznych dla danego środowiska rozwiązań. Mam na myśli CSI, CNI, Cloud…. tylko nie pamiętam jak to się nazywało….interfejs do integracji z rozwiązaniami chmurowymi.

No i cały zamysł tej technologii opartej o konteneryzację. I myśl, by tworzyć rozwiązania, które są bezstanowe i replikowane, czyli też odporne na awarie. (Dzięki czemu) jesteśmy w stanie za pomocą mechanizmów K8s tworzyć upgrade canary deployment, które zapewniają płynność w działaniu aplikacji i jak najniższy downtime.

Błażej

Czy fascynuje Cię K8s?

Oczywiście, że tak.

Dlaczego?

Odpowiedź jest jedna. Ze względu na swoją złożoność. Fascynuje mnie złożoność całego tego środowiska, ale też, to jak jest ono cały czas rozwijane. Nie miałem jeszcze z nim za dużo do czynienia, ale jak je poznaję, to ciekawi mnie jak dużo jest narzędzi do zarządzania bezpośrednio w K8s. Jak bardzo dobrze jest rozwiązany provisioning, jak super jest wykorzystane API i to, że możemy nim zbierać informacje oraz kontrolować co się dzieje. To jest bardzo fascynujące, jak to ze sobą wszystko współgra. Jak też zasoby są przypisane, jak brakuje czegoś,  to jak one współpracują, żeby wszystko działało i się nie wywalało. Cała ta orkiestracja, że to wszystko ze sobą gra…

Ciekawe są te narzędzia do zarządzania i że można tworzyć swoje własne.

Ciekawy jest provisioning, jak bardzo można wiedzieć, co się dzieje, jak ją kontrolować, co się z nią (aplikacją) dzieje, jak są jakieś corner case’y. Jest też dobry feedback, co warto kontrolować i co warto naprawiać (usprawnić).

Nie jest to narzędzie, które można poznać w chwilę. Wymaga dużo wiedzy, zebranej w praktyce i w teorii, by je w pełni zrozumieć. A coś, co trudno zrozumieć, jest z pewnością ciekawe 🙂

Lukas

Czy fascynuje Cię Kuberentes?

Fascynują mnie jego możliwości.

Dlaczego?

(…długa cisza…) podoba mi się zmiana podejścia do uruchamiania aplikacji względem wcześniejszych wzorców… i, że te ograniczenia, które on narzuca pozwalają na tworzenie wymiennych modułów. Możesz napisać driver CSI i jakakolwiek aplikacja, która to obsługuje będzie działała, tak samo jest z siecią, service mesh, on sam z siebie nie ma zbyt dużo komponentów, ale dorzucenie zewnętrznych komponentów jest proste-łatwe. Nawet te komponenty można wymieniać co jest ważne np. mikroK8s używa dqlite zamiast etcd. Architektura jest bardzo fajnie zrobiona, pozwala ona na praktycznie dowolne rozszerzanie możliwości. Czyli nie mamy tylko samych kontenerów, ale też np, zarządzanie VM’kami, operatory i obiekty K8s’owe. No i uważam, że jest bardzo dobrze zrobiony, bo zrobili go ludzie z Google, po tym jak robili własny soft jeszcze bez kontenerów, chyba Borg i architektura jest tak zrobiona, że te rzeczy, o których mówiłem wcześniej pozwalają na rozszerzenie, no i ma otwarte źródło. I jest przemyślany.

A Tanzu jak się ma do tego?

Tanzu rozszerza K8s ze wszystkich możliwych stron. I wszystko co można zrobić Tanzu robi. Idąc od dołu: storage (CSI driver do konsumowania dysków vsphere’owych), sieć cała Antrea zintegrowana z NSX, która pozwala na observablity sieciowe, nawet między klastrami K8s’a, no i loadbalancery, masz zarządzanie, jakby poziom wyżej, To jest zaje…iste, bo nawet supervisor klaster też jest K8s’em i te rzeczy co wystawią klastry, to jest operator. Więc sam supervisor klaster to jest taki taki K8s K8s’ów. Łatwo zarządzać, upgrade’ować, niszczyć, to jest zautomatyzowane. Ręczne wystawienie, żeby to było porównywalne jest bardzo ciężkie, bo skomplikowane technicznie. Trzeba znać bardzo dużo komponentów i wiedzieć jak je połączyć. I stoi na ramionach gigantów, czyli stabilnego vSphere’a.

A jakbyś odniósł go do Sarkana?

Mamy zrobiony storage. Nie mamy tych wszystkich komponentów. Nie mamy supervisor clustra, ale jak będziemy mieli, to będzie kompatybilny nie tylko z vSpherem. No, ale nasz wymaga tylko dysków i Ubuntu, i tak długo jak, to jest wspierane, to wszystko działa od ręki. Żeby mieć Tanzu to musisz mieć kompatybilne serwery i storage. Więc na razie jeśli chcesz mieć tylko pod storage, to Sarkan będzie prostszy i tańszy.

A co jest takie wow?

MP, które piszemy do Flopsara 😀…ale z K8s’a….ta kompatybilność, jak masz te komponenty, to aplikacja będzie działać wszędzie, na każdej dystrybucji, o ile nie jest jakoś ona specjalnie “skopana”, w sensie dostosowana.

Arek

Czy fascynuje Cię Kuberentes?

Oczywiście, że tak. 🙂

A co Cię w nim fascynuje?

…jakby wychodząc wiesz, zaczynając od konteneryzacji i mikroserwisów i przechodząc do K8s…bo jakby cały ten temat jest fascynujący. I K8s daje duże wsparcie w zarządzaniu. Można to podzielić na różne płaszczyzny, co mnie fascynuje. Części: operatorska, developerska, ecosystem, społeczność. Od developmentu po właśnie zarządzanie, skalowalność, ta niezawodność w dostępie do systemów, od operatorskiej monitoring, optymalizacje nawet pod względem kosztów, właśnie jak mamy skalowalność, to przez operatora ciężko oszacować, a przy pomocy K8s możemy ją zoptymalizować. Pod względem skalowalności, jak mamy aplikację, która jest nierównomiernie obciążona, to K8s pozwala, tam gdzie jest zwiększone obciążenie je obsłużyć…to jest mega fajny bajer K8s…

nie wiem co jeszcze… to też na pewno upraszcza wdrażanie aplikacji. I tutaj dzięki wsparciu mikroserwisów, jesteśmy w stanie podzielić zespół na mniejsze drużyny i możemy je równolegle rozwijać….automatyzowanie różnych działań ma duży plus. I to jest fajne, że w deklaratywny sposób zarządzamy. Określamy wymagania aplikacji i K8s nam to zapewnia….nie wiem chyba wyczerpałem…

Co jest mega zaje…iste, tak żebyś powiedział: “ale to extra rozkminili”?

Hmmmm… … … no chyba, to takie ogólne będzie… ale zarządzanie tymi aplikacjami. I operatory i mechanizmy bezpieczeństwa.

Benny

Czy fascynuje Cię Kuberentes?

Tak.

Dlaczego?

A… bo to fajne narzędzie… Umożliwia… hmmm… jakby to… po prostu działa… udostępnia dużo fajnych rzeczy zarówno przy… hmmm… przy jakimś hobbystycznym deploymencie aplikacji, jak i zarówno jakiś dużych korporacyjnych klastrów. Pozwala nie przejmować się takimi rzeczami jak loadbalancing i skalowalność. Duże rzeczy załatwia za użytkownika. Co prawda próg wejścia jest dość wysoki i trzeba się dużo nauczyć, ale jak się ogarnie podstawowe rzeczy, to można łatwo robić wdrożenia.

Ogarnia rollout i rollback’i, jak coś nie pójdzie przy deploymencie, to K8s to cofa. Updateowanie aplikacji jest dużo bardziej bezproblemowe. W sumie też technologia ma to do siebie, że lubi się psuć, usługi  i sprzęt się psują. A zdolność K8s na selfhealing pozwala, na to, że ona się monitoruje, sprawdza co w aplikacji się dzieje i sam próbuje to naprawić. Nie musimy nic robić i K8s robi to za nas…W skrócie to jest fajne narzędzie po prostu.

Ale zaje…iste?

No jest zaje…iste… co tu mówić… 😀… to jak, to działa przy tym jak, to jest złożone, to rozwala mózg 🙂… albo możliwość rozszerzania tego, że możemy dosłownie tworzyć zasoby K8s i działać na nich jak na domyślnych zasobach… świetna rzecz… tworzenie natywnych aplikacji K8s, które działają i komunikują się klastrem K8s… to zaje…ista rzecz 🙂

Piotrek

Czy fascynuje Cię Kuberentes?

W sumie nie miałem jakoś bardzo styczności z K8s. Aczkolwiek podczas pierwszego zadania nt. Sarkana, chłopacy pozwoli mi się z nim zapoznać i nawet im powiedziałem, że jestem w szoku jak to działa. I nie widząc tego wcześniej potrafiłem powiedzieć, że to fajnie działa.

Dlaczego Cię fascynuje?

hy… … dlaczego, wydaje mi się, że fajne jest to, że nie musimy osobiście pilnować kontenerów, całych aplikacji zbudowanych z tych kontenerów. On to robi za nas. Żeby nie było przerwy jak coś się zepsuje, on wystawi ja na nowo. Co jeszcze? Fajnie, że możemy określić moc procesową i pamięć ram dla tych kontenerów i chyba tyle. Fajnie, że powstało takie narzędzie i nie trzeba robić tego wszystkiego manualnie.

Ale co jest takie naprawdę zaje… stego? No wtedy na voffice’ie (wirtualne całodniowe wspólne pracowanie przez teams’y, bo pracujemy zdalnie – przyp.red.)… powiedziałem, że jestem w szoku, bo jak usunąłem metadata serwer, i on zmienił sobie sam leadera, po czym sam wystawił sobie nowy serwer… jeszcze nie wiedziałem, że to tak działa, może dlatego… na razie chyba tyle z tego co takie zaje…iste było… chyba…

Podsumowując zdanie kolegów, fascynuje mnie, bo ma:

  • mechanizm rollback dla wdrażanych na nim aplikacji
  • wbudowane HA i skalowalność
  • modułowość komponentów i uruchamianych usług
  • “przejrzystość” skomplikowanej architektury
  • świetną dokumentację
  • możliwość elastycznego rozudowania, łatwego dodawania funkcjonalności dla specyficznych use-case’ów
  • observability
  • self-healing

Osobiście “my favourite” to Service Mesh 🙂. A co Was fascynuje w Kubernetesie czego tu jeszcze nie przytoczyłem?

WRÓĆ DO AKTUALNOŚCI