🢂Kubernetes ‑ Cheatsheet (ściąga)

Kubernetes to otwartoźródłowy system służący do automatyzacji wdrażania, skalowania oraz zarządzania aplikacjami kontenerowymi.

Co to jest Kubernetes

Kubernetes umożliwia użytkownikom grupowanie kontenerów, które tworzą aplikacje, w logiczne jednostki, co ułatwia zarządzanie i odkrywanie usług. Zaprojektowany przez Google, Kubernetes stał się standardem dla orkiestracji kontenerów, oferując potężne narzędzia do zarządzania aplikacjami zbudowanymi w architekturze mikroserwisów oraz innych rozproszonych systemach. Dzięki Kubernetes, można łatwiej osiągnąć wysoką dostępność, skalowalność i przenośność aplikacji na różnych środowiskach, od lokalnych instalacji, przez duże centra danych, aż po chmurę publiczną.

Czym jest orkiestracja kontenerów przy użyciu Kubernetes

Orkiestracja kontenerów przy użyciu Kubernetes to proces automatycznego zarządzania cyklem życia kontenerów, które zawierają aplikacje. Kubernetes umożliwia łatwe wdrażanie, skalowanie i zarządzanie aplikacjami kontenerowymi na dużą skalę.

Co daje orkiestracja kontenerów przy użyciu Kubernetes

Dzięki niemu, można automatycznie rozmieszczać kontenery na różnych maszynach, zarządzać ich stanem, skalować je w górę lub w dół w zależności od obciążenia, a także zapewniać ciągłość działania aplikacji przez automatyczne restartowanie kontenerów, które przestały działać. Ponadto, Kubernetes oferuje funkcje samonaprawy, zarządzania konfiguracją, odkrywania usług i balansowania obciążenia, co znacząco ułatwia zarządzanie złożonymi aplikacjami i usługami w środowiskach produkcyjnych.

  1. Instalacja Kubernetes:
    • sudo apt-get update && sudo apt-get install -y apt-transport-https curl
    • Dodaj klucz GPG dla oficjalnego repozytorium Kubernetes.
    • curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    • Dodaj repozytorium Kubernetes do listy źródeł.
    • echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
    • Zaktualizuj i zainstaluj kubelet, kubeadm i kubectl.
    • sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl
  2. Inicjowanie klastra za pomocą kubeadm:
    • sudo kubeadm init
    • Skonfiguruj kubectl do używania konfiguracji klastra.
    • mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config
  3. Instalacja sieci Pod:
    • Zainstaluj Calico jako rozwiązanie sieciowe.
    • kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  4. Dołączanie węzła roboczego:
    • Użyj wygenerowanego wcześniej polecenia kubeadm join na każdym węźle roboczym.
  5. Wdrażanie aplikacji:
    • Utwórz plik deployment.yaml dla Twojej aplikacji.
    • Użyj kubectl apply -f deployment.yaml do wdrożenia.
  6. Skalowanie aplikacji:
    • kubectl scale deployment <nazwa_deploymentu> --replicas=<liczba_instancji>
  7. Aktualizacja aplikacji:
    • Zmodyfikuj deployment.yaml z nowym obrazem aplikacji.
    • kubectl apply -f deployment.yaml do zaktualizowania.
  8. Wycofanie aktualizacji:
    • kubectl rollout undo deployment <nazwa_deploymentu>
  9. Konfiguracja Probes:
    • Dodaj livenessProbe i readinessProbe do konfiguracji kontenera w deployment.yaml.
  10. Konfiguracja Autoscaling:
    • kubectl autoscale deployment <nazwa_deploymentu> --min=<min_pod> --max=<max_pod> --cpu-percent=<procent>
  11. Zarządzanie zasobami:
    • Określ limity CPU i pamięci w konfiguracji kontenera w deployment.yaml.
  12. Tworzenie i używanie Secret:
    • kubectl create secret generic <nazwa_secret> --from-literal=key=value
    • Użyj Secret w konfiguracji kontenera.
  13. Konfiguracja Persistent Volume:
    • Utwórz i skonfiguruj PersistentVolume i PersistentVolumeClaim dla trwałego przechowywania danych.
  14. Użycie ConfigMap:
    • kubectl create configmap <nazwa_configmap> --from-literal=key=value
    • Zintegruj ConfigMap z aplikacją w deployment.yaml.
  15. Zarządzanie logami i monitoring:
    • Użyj kubectl logs <nazwa_pod> do przeglądania logów.
    • Zainstaluj i skonfiguruj Prometheus i Grafana dla monitoringu klastra i aplikacji.