Kubernetes dla każdego – sztuka konteneryzacji
pods lub ReplicaSetsrollout, 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 Greenspec.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-deploymentkubectl port-forward nginx-deployment-784b7cc96d-xrxww 8080:80