Droga do Kubernetes (1)

Od jakiegoś czasu wchodzę głębiej w Kubernetes. Co to takiego? Otóż to taki program do zarządzania kontenerami. Teraz spytacie, co to są kontenery? Otóż kontenery to metoda na izolowanie programów od siebie. Technicznie, zakładając, że są to kontenery linuksowe, to polega to na wykorzystaniu mechanizmów linuksa takich jak przestrzenie nazw czy inne.

No i układa się te kontenery na tzw. podach. I pody są w Kubernetes taką podstawową jednostką podziału. Mają własne IP nawet.

Z kolei pody są położone na węzłach (nodes), które reprezentują jakby jeden komputer (fizyczny bądź wirtualny. Bo to nie musi być komputer prawdziwy). I te węzły też mają swoje IP.

Dalej, różne węzły tworzą jakby taki klaster(cluster), czyli taki zbiór różnych węzłów. I są one połączone w sieć. I mogą się komunikować.

Żeby ułatwić komunikacje między różnymi podami, można tworzyć różne serwisy, które będą w stanie przemapować nazwę serwisu na IP.

Dobra a teraz podstawowe pytanie - na co to wszystko?

Pewnie jest wiele zalet, jednak takimi podstawowymi wydaje mi się być przenośność oraz skalowalność rozwiązań.

Przenośność, czyli możesz sobie stworzyć aplikację webową, która korzysta z wielu różnych mikroserwisów (które komunikują się z innymi częściami aplikacji przez sieć), czyli taką dość rozproszoną. I normalnie to, żeby wgrać to na serwer, musiałbyś instalować wiele różnych programów na różnych serwerach, bo niektóre części by działały na jednym serwerze, inne na drugim itp. Dochodziłoby instalowanie zależności na każdym serwerze. Ogólnie wyszłaby partyzantka.

I tutaj wchodzi Kubernetes, cały na niebiesko i pozwala na zdefiniowanie całego deploymentu, kontenerów i serwisów w formie plików konfiguracyjnych YAML. Tak, że zamiast instalować pojedyncze programy, to instalujesz cały klaster z różnymi programami i częściami aplikacji, którą dany zespół pisze.

Dalej, skalowalność. Bo możesz sobie zażyczyć mieć np. kilka kopiii wszystkiego. Np. kilka serwerów baz danych. Żeby się lepiej skalowało. I w Kubernetes możesz to zrobić.

Kontenery lubią się z chmurami i na chmurach są specjalne rozwiązania nawet do wgrywania kontenerów (np. EKS na AWS). Bo chmury to też są takie jakby w tym stylu. Że coś się tam skaluje i że nie wszystko musi być prawdziwe, bo może być wirtualne. Więc jak zobaczysz kogoś, kto jest fanem kontenerów, to bardzo możliwe, że chmurę też lubi. I odwrotnie. Jak ktoś lubi chmury, to i kontenery często też, bo to idzie w parze.

No, i tak to wygląda, chociaż to zaledwie naszkicowanie tego w zarysie. Bo Kubernetes pod spodem jest nieco bardziej złożony. Wiele osób się do niego przez to zniechęca i prycha, że "ooo, co to za Kubernetes, nie chce mi się tego uczyć". I o tym też miałbym nieco do napisania - co zrobić, żeby lepiej zrozumieć Kubernetes, ale to już temat na inny post. Więc ahoj na razie.

Komentarze

Popularne posty z tego bloga

Ściemy z ogłoszeń o pracę

Zostać programistą (2) - czy się nadajesz?

Czego się nauczyłem w 2021?