CIOProgramowaniePolecane tematy

Jak uruchomić klaster kontenerów Kubernetes?

Z perspektywy użytkowników Kubernetes to doskonałe narzędzie do automatyzacji instalacji, skalowania i zarządzania skonteneryzowanymi aplikacjami. Jego wdrożenie na produkcji nie jest jednak takie proste, a uruchomienie zarządzanej platformy Kubernetes stanowi spore wyzwanie. Na przykładzie nowej usługi OVH pokażemy, w jaki sposób najłatwiej uruchomić klaster Kubernetes.

W listopadzie 2018 r. uruchomiliśmy publiczną wersję beta naszej usługi Managed Kubernetes. Był to kamień milowy na drodze do udostępnienia gotowej do użycia usługi do orkiestracji zarządzania kontenerami.

Korzystając z Kubernetesa początkowo jako zwykli użytkownicy szybko zdaliśmy sobie sprawę, jakim usprawnieniem i ułatwieniem byłyby usługi orkiestracji dla naszych klientów. Jednocześnie zrozumieliśmy, jak wiele wysiłku wymaga wdrożenie i utrzymywanie systemu Kubernetes. Na podstawie zebranych doświadczeń zbudowaliśmy w pełni zarządzany klaster. Dzisiaj jesteśmy certyfikowanym dostawcą platformy Kubernetes i posiadamy szeroki zakres wiedzy o tym, jak budować, utrzymywać i zarządzać systemem do orkiestracji na dużą skalę. Obecnie usługa Kubernetes od OVH jest dostępna dla wszystkich klientów.

Początki z Kubernetesem

Kiedy po raz pierwszy użytkownik korzysta z narzędzia Minikube (jednowęzłowy klaster Kubernetesa uruchamiany lokalnie) jest pozytywnie zaskoczony jego działaniem. Nie musi m.in. sam zajmować się zarządzaniem instancjami, sprawdzać czy kontenery działają, wyłącza instancję i Kubernetes odtwarza kontenery na innej instancji. Szybko i prosto.

Zachęcony prostotą obsługi i zaletami orkiestracji, z reguły zaczyna rozważać budowę większego klastra i wdrożenie w nim aplikacji. Tworzy więc wirtualne maszyny, uczy się obsługi „kubeadm”, po czym uruchamia w nowo zbudowanym klastrze własne aplikacje. Cały proces przebiega intuicyjnie i płynnie. Ale jak każda technologia, Kubernetes nie jest doskonały.

Uruchomienie produkcyjne klastra Kubernetes

Uruchamiając pierwszy klaster Kubernetes w hiperwizorze lub na platformie bare-metal, szybko przekonamy się, że rozwiązanie to wymaga cierpliwości i wiele wysiłku.

Wdrożenie klastra Kubernetes to dopiero pierwszy krok. Zanim będzie można uznać, że dany klaster jest gotowy do obsługi środowiska produkcyjnego, należy zadbać o:
• Proces instalacji – czy jest on zautomatyzowany i powtarzalny;
• Proces aktualizacji oraz przywracania wcześniejszej wersji (upgrade/rollback) – powinien być bezpieczny i sprawdzony;
• Procedurę przywracania – należy ją wdrożyć, udokumentować i przetestować;
• Wydajność – wskazane są testy wydajnościowe, które potwierdzą, że klaster działa stabilnie, zwłaszcza w przypadku korzystania z trwałych wolumenów;
• Prawidłowe działanie klastra oraz monitoring – sprawdzenie, że zbierana jest wystarczająca ilość danych w postaci śladów (traces), metryk i logów, które umożliwiają wykrywanie i usuwanie błędów oraz usterek;
• Bezpieczeństwo – zabezpieczenie usługi oraz jej wysokiej dostępności.

Kubernetes prościej

Wbrew pozorom wdrożenie klastra Kubernetes nie usunie konieczności wykonywania operacji związanych z utrzymaniem aplikacji i nie umożliwi od razu wdrożenia koncepcji NoOps. Opanowanie obsługi narzędzi o tak zaawansowanych możliwościach zajmuje sporo czasu i wiąże się koniecznością testowania rozwiązań, a więc i z ryzykiem.

Jak w przypadku złożonych technologii, pozorna prostota i wszechstronność po stronie Dev (rozwoju) idzie w parze z wysoką złożonością po stronie Ops (operacji). Nic dziwnego, że wielu użytkowników Kubernetes jest zainteresowanych zarządzaną usługą w miarę zbliżania się do etapu przejścia z fazy proof-of-concept do produkcji.

Chcąc odpowiedzieć na potrzeby użytkowników, którzy chcieliby korzystać z orkiestracji, ale nie planują samodzielnie wdrażać architektury Kubernetesa, postanowiliśmy stworzyć dla nich gotową usługę: zarządzany Kubernetes – rozwiązanie w pełni oparte na otwartym kodzie, niewiążące klientów z jednym dostawcą oraz całkowicie kompatybilne z każdym innym rozwiązaniem Kubernetes. Naszym celem było udostępnienie gotowego, w pełni zarządzanego klastra Kubernetes i uwolnienie naszych klientów od konieczności podejmowania się instalacji lub działań operacyjnych.

Solidne podstawy

Wdrażając rozwiązanie Kubernetes, wybraliśmy sprawdzone technologie. Początek był prosty: musieliśmy upewnić się, że podstawowa infrastruktura jest solidna, dlatego wykorzystaliśmy własne rozwiązanie Public Cloud na bazie OpenStack.

Budowa platformy na dojrzałym, wysoko dostępnym i opartym na standardach produkcie pozwoliła nam skoncentrować wysiłki na prawdziwym wyzwaniu, przed którym stanęliśmy: stworzenia wysoce skalowalnego, łatwego w obsłudze zarządzanego rozwiązania Kubernetes z certyfikatem CNCF (Cloud Native Computing Foundation).

Zarządzany Kubernetes od OVH

W ramach zarządzanego klastra Kubernetes od OVH zapewniamy wdrożenie i aktualizację węzłów administracyjnych (master nodes) wraz z infrastrukturą konieczną do ich utrzymania. Ta część infrastruktury jest udostępniania bezpłatne, a klienci płacą jedynie za wykorzystywaną pojemność dyskową (trwałe wolumeny) oraz infrastrukturę obliczeniową, potrzebną do utrzymania ich kontenerów na instancjach Public Cloud.

Horacio Gonzalez, Developer Evangelist w dziale OVH Platform

Tagi

Podobne

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *