🢂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.
- 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
- 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
- Instalacja sieci Pod:
- Zainstaluj Calico jako rozwiązanie sieciowe.
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- Dołączanie węzła roboczego:
- Użyj wygenerowanego wcześniej polecenia
kubeadm join
na każdym węźle roboczym.
- Użyj wygenerowanego wcześniej polecenia
- Wdrażanie aplikacji:
- Utwórz plik
deployment.yaml
dla Twojej aplikacji. - Użyj
kubectl apply -f deployment.yaml
do wdrożenia.
- Utwórz plik
- Skalowanie aplikacji:
kubectl scale deployment <nazwa_deploymentu> --replicas=<liczba_instancji>
- Aktualizacja aplikacji:
- Zmodyfikuj
deployment.yaml
z nowym obrazem aplikacji. kubectl apply -f deployment.yaml
do zaktualizowania.
- Zmodyfikuj
- Wycofanie aktualizacji:
kubectl rollout undo deployment <nazwa_deploymentu>
- Konfiguracja Probes:
- Dodaj
livenessProbe
ireadinessProbe
do konfiguracji kontenera wdeployment.yaml
.
- Dodaj
- Konfiguracja Autoscaling:
kubectl autoscale deployment <nazwa_deploymentu> --min=<min_pod> --max=<max_pod> --cpu-percent=<procent>
- Zarządzanie zasobami:
- Określ limity CPU i pamięci w konfiguracji kontenera w
deployment.yaml
.
- Określ limity CPU i pamięci w konfiguracji kontenera w
- Tworzenie i używanie Secret:
kubectl create secret generic <nazwa_secret> --from-literal=key=value
- Użyj Secret w konfiguracji kontenera.
- Konfiguracja Persistent Volume:
- Utwórz i skonfiguruj
PersistentVolume
iPersistentVolumeClaim
dla trwałego przechowywania danych.
- Utwórz i skonfiguruj
- Użycie ConfigMap:
kubectl create configmap <nazwa_configmap> --from-literal=key=value
- Zintegruj
ConfigMap
z aplikacją wdeployment.yaml
.
- 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.
- Użyj