Tworzenie wdrożeń

Wdrożenie odwołuje się do obiektu Kubernetes, który zarządza wydajnością i określa żądane zachowanie zasobnika. Określa cykl życia aplikacji, w tym zasobniki przypisane do aplikacji. Zapewnia ona sposób przekazywania żądanego stanu dla aplikacji, a kontroler pracuje nad zmianą stanu obecnego na żądany.

Wdrożenia automatyzują proces uruchamiania wystąpień zasobników i zapewniają ich uruchamianie zgodnie z definicją we wszystkich węzłach w klastrze. Administratorzy i specjaliści IT używają wdrożeń do przekazywania żądanych informacji z aplikacji, a następnie kubernetes podejmuje wszystkie kroki niezbędne do utworzenia żądanego stanu aplikacji.

Wdrożenia definiują sposób uruchamiania aplikacji, ale nie gwarantują, gdzie znajdują się aplikacje w klastrze. Jeśli na przykład aplikacja wymaga wystąpienia zasobnika w każdym węźle, należy użyć zestawu DaemonSet. W przypadku aplikacji stanowych zestaw StatefulSet zapewnia unikatowe identyfikatory sieci, magazyn trwały i uporządkowane wdrożenie/skalowanie.

Obiekt wdrożenia rozwiązania Kubernetes umożliwia:

  • Wdrażanie zestawu replik lub zasobnika
  • Skalowanie liczby wystąpień aplikacji w górę lub w dół
  • Aktualizowanie każdego uruchomionego wystąpienia aplikacji
  • Wycofywanie wszystkich uruchomionych wystąpień aplikacji do innej wersji
  • Wstrzymywanie lub kontynuowanie wdrażania

Aby uzyskać dodatkowe informacje, zobacz Kubernetes Deployments (Wdrożenia kubernetes).

Tworzenie wdrożenia

Wdrożenie można utworzyć przy użyciu kubectl apply poleceń kubectl create lub . Ponieważ wymagana liczba zasobników jest utrzymywana i monitorowana, są one uruchomione i dostępne po utworzeniu wdrożenia. Jeśli zasobnik ulegnie awarii, usługa Kubernetes natychmiast wycofuje replikę zasobnika, aby zająć jego miejsce w klastrze.

W poniższym przykładzie opisano funkcje pliku manifestu wdrożenia w formacie YAML.

apiVersion: apps/v1  
kind: Deployment  
metadata: 
      name: nginx
spec:  
      replicas: 3
      selector:
           matchlabels:
containers:
      template:
           metadata:
      labels:
        app: nginx
            spec:  
      	    containers:  
       	    -name: nginx  
       	    image: nginx: 1.7.9
       	    ports:  
        	  -containerPort: 80  

Aby wyświetlić wdrożenie, zestaw replik i zasobniki, uruchom następujące polecenie:

kubectl get deployment, replicaset, pod

Aktualizowanie wdrożenia

Główną zaletą wdrożeń jest automatyczna aktualizacja programu Kubernetes. Bez wdrożeń trzeba ręcznie zakończyć wszystkie stare zasobniki, uruchomić nowe wersje zasobników i uruchomić sprawdzanie, czy podczas tworzenia zasobników występują jakieś problemy. Możesz uruchomić program , aby sprawdzić kolejność, w jakiej zasobniki kubectl describe deployment zostały uruchomione i usunięte.

Wdrożenia automatyzują proces aktualizacji, ponieważ wystarczy zaktualizować szablon zasobnika lub żądany stan. Wdrożenie zmienia stan programu w tle za pomocą akcji, takich jak tworzenie nowych zasobników lub przydzielanie większej liczby zasobów, do momentu wdrożenia wybranej aktualizacji.

Jeśli we wdrożeniu występują problemy, program Kubernetes automatycznie wycofuje się do poprzedniej wersji. Możesz również jawnie wycofać określoną wersję za pomocą polecenia lub użyć polecenia , aby tymczasowo kubectl rollout undokubectl rollout pause zatrzymać wdrożenie.

Strategie aktualizacji wdrożeń

Środowisko Kubernetes oferuje kilka strategii wdrażania, dzięki czemu można je aktualizować na różne sposoby, aby dostosować je do potrzeb środowiska. Trzy najbardziej typowe strategie aktualizacji to:

  • Aktualizacja stopniowa:ta aktualizacja jest procesem stopniowym, który umożliwia aktualizację systemu Kubernetes tylko z niewielkim wpływem na wydajność i bez przestojów. Minimalizuje to przestoje kosztem szybkości aktualizacji.
  • Opis:Ta strategia to proces typu "wszystko lub nic", który pozwala na aktualizowanie wszystkich aspektów systemu jednocześnie z krótkim okresem przestoju. Jest ona aktualizowana szybko, ale powoduje przestój.
  • Canary:ta strategia jest częściowym procesem aktualizacji, który umożliwia testowanie nowej wersji programu na rzeczywistych użytkownikach bez zobowiązania do pełnego procesu. Szybko aktualizuje ona wybranych użytkowników z pełnymi wersjami później.

Następne kroki