Ja też chciałbym, aby coś raz uruchomione działało już zawsze. Do tej pory wiele technologii obiecywało, że tym razem już będziesz mieć spokój.
Żadna jednak tego nie dowiozła. Z prozaicznego powodu – to po prostu niemożliwe. To jak sobie radzić? Zapraszam do szczegółów poniżej.
Powody występowania problemów
Tak jak najbezpieczniejsze systemy to takie odłączone od sieci tak samo stabilne systemy/aplikacje/platformy to takie, gdzie nie są wprowadzane zmiany.
To jest właśnie powód, dla którego tradycyjnie osoby zajmujące się środowiskiem (Ops, Admini czy też nawet DevOps) bardzo ostrożnie podchodzą do aktualizacji aplikacji. Fakt, każda zmiana to ryzyko i trzeba to będzie w pośpiechu naprawiać.
Ale nawet jak nie zostaną wprowadzone zmiany to i tak jest coś co możemy włożyć do worka “czynniki zewnętrzne”. To wszystko co jest poza naszą kontrolą czyli np.:
- awaria sprzętu
- przecięcie światłowodu przez koparkę
- pożar serwerowni
- awarii u dostawcy chmury
- atak DDoS
Na takie ewentualności musimy być przygotowani projektując platformy i wdrażając aplikacje według zasad “Design For Failure”.
Do tego praktyki inżynierii chaosu (chaos engineering) i powinniśmy przetrwać.
A co z Kubernetesem? Nie miał on czasem ograniczyć liczbę takich przykrych niespodzianek?
Najczęstsze problemy na Kubernetesie
Na środowiskach pod kontrolą Kubernetesa jest już zdecydowanie lepiej niż bez. Istnieje dużo mechanizmów wspomagających zachowanie poprawnego działania systemów niwelujących skutki awarii czy różnych problemów. Są to między innymi:
- Sondy (probes), w szczególności liveness
- Replikacja podów wraz z odtwarzaniem niesprawnych podów
- Mechanizm rozkładania podów po strefach dostępności i różnych węzłach
- Rozdzielenie warstwy wolumenów na dane przez niezależne wiązanie PV i PVC
- Monitorowanie stanu węzłów i mechanizm eksmisji podów
Ale nie jest wciąż różowo i pozostają problemy, które się pojawiają i muszą być rozwiązywane indywidualnie. Zobaczmy jakie występują najczęściej.
Działa, ale wolno
Może aplikacja pożera zbyt dużo mocy obliczeniowej, może nowa wersja działa gorzej, może źle zostały przydzielone zasoby, może na węźle się coś dzieje dziwnego – powodów może być dużo, ale irytacja klientów końcowych zawsze jest.
I to wyraźnie większa niż to gdy system nie działa w ogóle.
Pody nie wstają
Aplikacje pięknie opakowane w obrazy kontenerów, pipeline wdrożeniowy zakończony sukcesem, a pody wstać nie chcą.
Cóż, też się zdarza. Czasem mechanizm kroczącej aktualizacji (rolling update) tu pomoże, a czasem wręcz przeszkodzi.
A widziałeś status CrashLoopBackOff? To jest w ogóle ciekawa sprawa i niestety też często powodująca panikę w zespołach.
Dziwne zachowania podów
Byłoby zbyt pięknie, gdyby pody działały wszędzie tak samo. Różnice będą zawsze – zaczynając od konfiguracji dostarczanej aplikacji przez inne węzły, inaczej działającą sieć poprzez skomplikowane przypadki, które pomimo małej skali (kilka podów) destabilizują środowisko.
Błędy w komunikacji
Taki Ingress jest fantastyczny dopóki nie psuje więcej niż ułatwia. Do tego wiele poziomów balansowania ruchu sprawia, że jest dużo punktów, gdzie coś może pójść nie tak.
Komunikacja może być zbyt wolna, nie docierać w ogóle lub niepoprawnie rozkładać ruch po podach. Warstwy abstrakcji wówczas trzeba odsłonić i zajrzeć co jest pod spodem.
Pobierz mój przewodnik ze wskazówkami
Jeśli masz dostęp do mojego kursu to umieściłem tam bardzo przydatny przewodnik z pomocnymi wskazówkami do diagnozowania i usuwania problemów, które najczęściej możesz spotkać na Kubernetesie.
A jeśli nie masz dostępu do kursu to już wkrótce umożliwię jego pobranie również Tobie – po prostu pierwszeństwo mają moi kursanci 🙂
Przewodnik dostępny jest w ramach NOWEGO modułu 11 w części PRO.
🤫I tu UWAGA – mały spoiler
Wkrótce odsłona drugiej edycji kursu z nowymi materiałami, które pomogą w diagnozowaniu i rozwiązywaniu problemów z aplikacjami i Kubernetesem. Będą one dostępne dla tych co zakupili kurs lub też zakupią.
💥Ogłaszam niniejszym oficjalnie, że PREMIERA nowej odsłony kursu odbędzie się 1 lutego, a wraz z nią też promocyjna sprzedaż dla tych co chcą rok 2024 rozpocząć z przytupem i wymasterować się solidnie z Kubernetesa.
Więcej szczegółów już wkrótce…