PRZEWODNIK PO KONTENERYZACJI I KUBERNETES

Co to jest konteneryzacja?

Jeśli słysząc o konteneryzacji, na myśl przychodzą Ci wielkie, morskie statki przewożące kontenery, to nie jest to przypadkowe skojarzenie. Podobnie jak branża logistyczna, która szukała sposobu na usprawnienie logistyki i zwiększenie upakowania, tak i branża informatyczna sięgnęła po kontenery szukając rozwiązania bardzo podobnego problemu. W tym drugim przypadku są one oczywiście wirtualne.

Dlaczego warto stosować kontenery?

Rosnąca popularność technologii konteneryzacji wynika z licznych korzyści, jakie zapewnia ona firmom chcącym zwiększyć swoją konkurencyjność i wydajność.

Kubernetes i orkiestracja kontenerów

W miarę zwiększania się złożoności systemów IT, pojawiło się zapotrzebowanie na zarządzanie rozporoszonymi, kontenerowymi aplikacjami na masową skalę. Rozbudowane systemy potrafią wykorzystywać nawet setki kontenerów umieszczonych na wielu serwerach, uniemożliwiając ręczne zarządzanie. Tu z pomocą przychodzi orkiestracja kontenerów, czyli proces polegający na automatyzacji wdrażania, zarządzania, skalowania i łączenia kontenerów w sieć.

Porównanie platform do zarządzania (orkiestracji) kontenerami we własnym środowisku

Tworzenie klastra Kubernetes  

Podstawy architektury Kubernetesa  

Z czego zbudowany jest klaster Kubernetes? Oto podstawowe komponenty:

Rodzaje platform do zarządzania (orkiestracji) kontenerami w chmurach 

Samodzielne tworzenie klastra Kubernetes 

Jeśli chcesz uruchomić klaster samodzielnie na własnej (lub dzierżawionej) infrastrukturze, musisz poświęcić trochę czasu na zdobycie stosunkowo szerokiej wiedzy. W sieci znajdziesz sporo przewodników i tutoriali, jak samodzielnie uruchomić klaster K8s, ale zagadnienie nie jest proste.  

Dlaczego warto korzystać z Managed Kubernetes? 

Kubernetes jest potężnym, ale złożonym i wymagającym zaawansowanych umiejętności rozwiązaniem do obsługi aplikacji kontenerowych. Nie każda firma ma możliwość samodzielnie zbudować zespół specjalistów od K8s, który stworzy własne, bezpieczne i w pełni funkcjonalne rozwiązanie. Dzięki temu, że Kubernetes jest platformą open-source na jej bazie najwięksi dostawcy chmury budują gotowe, zarządzane usługi, tzw. Managed Kubernetes. Poznaj zalety najpopularniejszych rozwiązań:

Jak uruchomić pipeline CI/CD na Kubernetesie?

Kubernetes i kontenery wspierają automatyzację procesów dostarczania oprogramowania. Coraz więcej organizacji sięga po metodykę DevOps i tworzy rozwiązania w ciągłych, płynnych przepływach pracy.

Dowiedz się, jak zbudować pipeline’y CI/CD na Kubernetesie i poznaj najpopularniejsze narzędzia, które ułatwią Ci pracę:

Jak uruchomić proces CI/CD w klastrze Kubernetes w Oktawave?

Obejrzyj tutorial i zobacz, jak krok po kroku zbudować prosty pipeline CI / CD w oparciu o Github Actions, a następnie jak zintegrować go z klastrem Kubernetes w chmurze Oktawave.  

Z tego odcinka dowiesz się:

  • Czym jest Oktawave Kubernetes Service (OKS)?
  • W jaki sposób utworzyć klaster Kubernetes z wykorzystaniem Terraform na platformie Oktawave?
  • Jak przygotować pipeline CI / CD w oparciu o Github Actions dla prostej aplikacji napisanej w pythonie (Django)?
  • Jakie warto zastosować „sztuczki”, np. dlaczego użyć anti-affinity, jak wdrożyć load balancer do serwowania aplikacji, czy Kustomize jest dobry do tworzenia szablonów konfiguracji?
  • Jak przygotować repozytorium Github i skonfigurować actions?
  • Jak z sukcesem przeprowadzić proces deploymentu na klastrze K8s? 

Jak uruchomić proces CI/CD w klastrze Kubernetes w AWS?

Obejrzyj tutorial i dowiedz się, jak w prosty sposób zbudować infrastrukturę w oparciu o chmurę AWS i Github Actions oraz jak zarządzać zasobami Kubernetes przy użyciu Flux CD.  

Z tego odcinka dowiesz się:

  • Jak stworzyć klaster Kubernetes na platformie AWS z pomocą Terraform?
  • Jak zarządzić plikiem stanu Terraform na backendzie S3?
  • Jak zainstalować ingress kontroler Kubernetesa?
  • Jak zbudować pipeline CI/CD w oparciu o Github Actions, AWS CodeBuild, AWS CodePipeline i AWS CodeDeploy?
  • Jak użyć do przechowywania haseł w klastrze AWS Secrets Manager?
  • Jak zainstalować i skonfigurować Flux CD?
  • Jak w łatwy sposób skalować klastry Kubernetes pod obciążeniem z użyciem HPA (Horizontal Pod Autoscaling)?

Jak uruchomić proces CI/CD w klastrze Kubernetes w Azure?

Obejrzyj tutorial i dowiedz się, jak w łatwy sposób utworzyć klaster Kubernetes na platformie oraz w jaki sposób zbudować proces CI/CD w oparciu o Github Actions oraz ArgoCD w środowisku Microsoft Azure.

Z tego odcinka dowiesz się:

  • W jaki sposób utworzyć klaster Kubernetes na platformie Microsoft Azure?
  • Jak poprawnie skonfigurować narzędzie GitHub Action?
  • Jak zbudować proces CI/CD w oparciu o Github Actions oraz ArgoCD w środowisku Azure?
  • W jaki sposób nadać uprawnienia do repozytoriów w rejestrze kontenerów ACR (Azure Container Registry)?
  • Jak stworzyć Helm Chart dla dowolnej aplikacji w celu łatwiejszego zarządzania konfiguracją?
  • Jak skonfigurować repozytoria, stworzyć aplikacje, przeprowadzić procesy wdrożenia oraz testy synchornizacji przy pomocy narzędzia ArgoCD?

Jak uruchomić proces CI/CD w klastrze Kubernetes w GCP?

Obejrzyj tutorial i dowiedz się, jak w łatwy sposób zbudować klaster Kubernetes w Google Cloud (Google Kubernetes Engine), a przy okazji jak bezpiecznie przechowywać hasła przy użyciu Cloud Key Management i Secret Managera. Zobacz, jak zdeployować całość na klaster Kubernetes przy użyciu ArgoCD i prostego pipeline’u CI/CD w oparciu o Github Actions. 

Z tego odcinka dowiesz się:

  • Jak stworzyć infrastrukturę jako kod (IaC) przy użyciu Terraform?
  • Jak skonfigurowć KSM, SOPS, Secrets Manager, External Secrets?
  • Jak stworzyć kontener i skonfigurować repozytorium przy użyciu Github Actions?
  • Jak zdeployować pythonową aplikację przy użyciu ArgoCD?

Jakich narzędzi użyć, aby ułatwić sobie pracę z Kubernetesem?

Aby ułatwić sobie pracę z Kubernetesem, można skorzystać z popularnych narzędzi, pozwalających wygodnie zarządzać klastrami. Zobacz zestawienie polecanych rozwiązań:

MONITORING KLASTRÓW KUBERNETES

Administratorzy systemów mogą korzystać z narzędzi, które umożliwiają monitorowanie stanu aplikacji i infrastruktury oraz śledzenie i analizowanie danych w czasie rzeczywistym. Najpopularniejsze z nich to:

Jak zadbać o bezpieczeństwo Kubernetesa?

Aby zapewnić bezpieczeństwo Kubernetesowi powinniśmy trzymać się zasady czterech C (4C):

Skalowanie aplikacji i klastrów w Kubernetesie

Jedną z ważniejszych korzyści, jakie zapewnia Kubernetes, jest możliwość łatwego skalowania aplikacji. Skalowanie aplikacji pozwala uruchomić ją na dowolnej liczbie serwerów, aby obsłużyć rosnącą liczbę użytkowników.

Wykonywanie kopii zapasowych w Kubernetesie

Co warto wiedzieć o kopii bezpieczeństwa klastra Kubernetes?