Kubernetes dla każdego – sztuka konteneryzacji
pods
lub ReplicaSets
rollout
, kontroluje historią deploymentówStrategie wdrożenia:
Recreate
natychmiastowe wdrożenie nowej wersji aplikacji, tworzy nowe-ubija stare pody (występuje downtime)
Rollingupdate (default)
maxUnavailable
liczba lub % podów które mogą być niedostępne w czasie update (Recreate
używa 100%)maxSurge
określa maksymalną ilość podów które mogą być utworzone ponad ustaloną liczbą podówCanary deployment
przekierowanie części ruchu do poda z nową wersjąBlue Green
spec.replicas
ilośc replik podów
spec.template
opis podów, czyli jakie kontenery będą wchodziły w ich skład
spec.selector
cośna podstawie czegoś obiekt deploymentu będzie rozpoznawał czy dany pod wchodzi w skład tego deploymentu
kubectl apply -f deployment.yaml
utworzenie obiektu deploymentu
kubectl get deploy
obiekt deploymentu
kubectl get rs
otrzymanie replicaSetu
kubectl scale deployments <deploymentName> --replicas=4
skalowanie obiektu deploymentu
kubectl scale rs <replicaSetName> --replicas=4
skalowanie ReplicaSet
Deplyment
jest ważniejszy od ReplicaSet
i to on zarząca całością aplikacji.spec.revisionHistoryLimit
(default 10) rozmiar historiimetadata.annotations
z informacją dlaczego rollout wystąpił, przykładowo:
metadata.annotations: kubernetes.io/change-cause: "Image update"
kubectl rollout history deployment <deploymentName>
przeglądanie historii rollout w ramach danego deploymentu
--revision=2
szczegóły danego rolloutukubectl rollout undo deployment <deploymentName>
powrót do wcześniejszej wersji podów/aplikacji
--to-revision=<numerWersjiRollout>
kubectl rollout status deployment nginx-deployment
status deploymentu/rolloutu
kubectl rollout status deployment.v1.apps/nginx-deployment
kubectl port-forward nginx-deployment-784b7cc96d-xrxww 8080:80