You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>Użytkownicy oczekują, że aplikacje są dostępne non-stop, a deweloperzy chcieliby móc wprowadzać nowe wersje nawet kilka razy dziennie. W Kubernetes jest to możliwe dzięki mechanizmowi płynnych aktualizacji <em>(rolling updates)</em>. <b>Rolling updates</b> pozwala prowadzić aktualizację w ramach Deploymentu bez przerw w jego działaniudzięki krokowemu aktualizowaniu kolejnych Podów. Nowe Pody uruchamiane są na Węzłach, które posiadają wystarczające zasoby.</p>
30
+
<p>Użytkownicy oczekują, że aplikacje są dostępne non-stop, a deweloperzy chcieliby móc wprowadzać nowe wersje nawet kilka razy dziennie. W Kubernetes jest to możliwe dzięki mechanizmowi płynnych aktualizacji <em>(rolling updates)</em>. <b>Rolling updates</b> pozwala prowadzić aktualizację w ramach Deploymentu bez przerw w jego działaniu. Odbywa się to dzięki krokowemu zastępowaniu kolejnych Podów. Nowe Pody uruchamiane są na Węzłach, które posiadają wystarczające zasoby, a Kubernetes czeka, aż uruchomią się nowe Pody, zanim usunie stare.</p>
32
31
33
32
<p>W poprzednim module wyskalowaliśmy aplikację aby była uruchomiona na wielu instancjach. To niezbędny wymóg, aby móc prowadzić aktualizacje bez wpływu na dostępność aplikacji. Domyślnie, maksymalna liczba Podów, które mogą być niedostępne w trakcie aktualizacji oraz Podów, które mogą być tworzone, wynosi jeden. Obydwie opcje mogą być zdefiniowane w wartościach bezwzględnych lub procentowych (ogólnej liczby Podów).
34
33
W Kubernetes, każdy aktualizacja ma nadany numer wersji i każdy Deployment może być wycofany do wersji poprzedniej (stabilnej).</p>
@@ -114,6 +113,81 @@ <h2 style="color: #3771e3;">Ogólnie o Rolling updates</h2>
114
113
</div>
115
114
</div>
116
115
116
+
<br>
117
+
118
+
<divclass="row">
119
+
<divclass="col-md-8">
120
+
<p>W ramach tego interaktywnego samouczka zaktualizujemy aplikację do nowej wersji, a następnie wycofamy tę aktualizację.</p>
121
+
</div>
122
+
</div>
123
+
<br>
124
+
125
+
<divclass="row">
126
+
<divclass="col-md-12">
127
+
<h3>Zaktualizuj wersję aplikacji</h3>
128
+
<p>Aby wyświetlić listę swoich Deploymentów, uruchom komendę <code>get deployments</code>:
129
+
<code><b>kubectl get deployments</b></code></p>
130
+
<p>Aby wyświetlić listę uruchomionych Podów, użyj komendy <code>get pods</code>:</p>
131
+
<p><code><b>kubectl get pods</b></code></p>
132
+
<p>Aby zobaczyć bieżącą wersję obrazu aplikacji, uruchom komendę <code>describe pods</code>
133
+
i poszukaj pola <code>Image</code>:</p>
134
+
<p><code><b>kubectl describe pods</b></code></p>
135
+
<p>Aby zaktualizować obraz aplikacji do wersji 2, użyj komendy <code>set image</code>, podając nazwę Deploymentu oraz nową wersję obrazu:</p>
136
+
<p><code><b>kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=docker.io/jocatalin/kubernetes-bootcamp:v2</b></code></p>
137
+
<p>Polecenie zainicjowało rolling update Deploymentu, aktualizując obraz aplikacji. Sprawdź status nowych Podów i zobacz, jak stare są zamykane używając polecenia <code>get pods</code>:</p>
138
+
<p><code><b>kubectl get pods</b></code></p>
139
+
</div>
140
+
</div>
141
+
<divclass="row">
142
+
<divclass="col-md-12">
143
+
<h3>Zweryfikuj aktualizację</h3>
144
+
<p>Najpierw sprawdź, czy usługa działa, ponieważ mogłeś ją usunąć w poprzednim kroku samouczka, uruchom <code>describe services/kubernetes-bootcamp</code>. Jeśli jej brakuje, możesz ją ponownie utworzyć za pomocą:
<p>Z każdym uruchomieniem polecenia <code>curl</code>, trafisz na inny Pod. Zwróć uwagę, że obecnie wszystkie Pody działają na najnowszej wersji (v2).</p>
152
+
<p>Możesz również potwierdzić aktualizację, uruchamiając komendę <code>rollout status</code>:</p>
153
+
<p><code><b>kubectl rollout status deployments/kubernetes-bootcamp</b></code></p>
154
+
<p>Aby wyświetlić bieżącą wersję obrazu aplikacji, uruchom komendę <code>describe pods</code>:</p>
155
+
<p><code><b>kubectl describe pods</b></code></p>
156
+
<p>W polu <code>Image</code> sprawdź, czy używasz najnowszej wersji obrazu (v2).</p>
157
+
</div>
158
+
</div>
159
+
160
+
<divclass="row">
161
+
<divclass="col-md-12">
162
+
<h3>Cofnięcie aktualizacji</h3>
163
+
<p>Wykonajmy kolejną aktualizację i spróbujmy wdrożyć obraz oznaczony tagiem <code>v10</code>:</p>
164
+
<p><code><b>kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=gcr.io/google-samples/kubernetes-bootcamp:v10</b></code></p>
165
+
<p>Użyj <code>get deployments</code>, aby zobaczyć status Deploymentu:</p>
166
+
<p><code><b>kubectl get deployments</b></code></p>
167
+
<p>Zauważ, że w wyniku nie jest podana oczekiwana liczba dostępnych Podów. Uruchom komendę <code>get pods</code>, aby wyświetlić listę wszystkich Podów:</p>
168
+
<p><code><b>kubectl get pods</b></code></p>
169
+
<p>Zauważ, że niektóre z podów mają status <tt>ImagePullBackOff</tt>.</p>
170
+
<p>Aby uzyskać więcej informacji na temat problemu, uruchom komendę <code>describe pods</code>:</p>
171
+
<p><code><b>kubectl describe pods</b></code></p>
172
+
<p>W sekcji <code>Events</code> dla podów, zauważ, że wersja obrazu <code>v10</code> nie istniała w repozytorium.</p>
173
+
<p>Aby wycofać wdrożenie do ostatniej działającej wersji, użyj komendy <code>rollout undo</code>:</p>
<p>Polecenie <code>rollout undo</code> przywraca Deployment do poprzedniego znanego stanu (v2 obrazu). Aktualizacje są wersjonowane i można je cofać do dowolnego wcześniej znanego stanu Deploymentu.</p>
176
+
<p>Użyj podpolecenia <code>get pods</code>, aby ponownie wyświetlić listę Podów:</p>
177
+
<p><code><b>kubectl get pods</b></code></p>
178
+
<p>Aby sprawdzić obraz wdrożony na działających Podach, użyj podpolecenia <code>describe pods</code>:</p>
179
+
<p><code><b>kubectl describe pods</b></code></p>
180
+
<p>Deployment ponownie używa stabilnej wersji aplikacji (v2). Wycofanie zakończyło się pomyślnie.</p>
0 commit comments