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
<li>Nauczyć się jak działa Deployment dla aplikacji.</li>
24
-
<li>Zainstalować pierwszą aplikację używając kubectl.</li>
25
-
</ul>
26
-
</div>
21
+
<ul>
22
+
<li>Nauczyć się jak działa Deployment dla aplikacji.</li>
23
+
<li>Zainstalować pierwszą aplikację używając kubectl.</li>
24
+
</ul>
25
+
</div>
27
26
28
27
<divclass="col-md-8">
29
28
<h3>Instalacje w Kubernetes</h3>
29
+
30
+
{{<note>}}
31
+
<p>Ten samouczek wykorzystuje kontener wymagający architektury AMD64. Jeśli używasz
32
+
minikube na komputerze z inną architekturą CPU, możesz spróbować użyć minikube z
33
+
sterownikiem, który potrafi emulować AMD64. Na przykład potrafi to zrobić sterownik Docker Desktop.</p>
34
+
{{< /note >}}
35
+
30
36
<p>
31
-
Mając działający klaster Kubernetes, można na nim zacząć instalować aplikacje.
32
-
W tym celu należy skonfigurować <b>Deployment</b>. Deployment informuje Kubernetesa,
33
-
jak tworzyć i aktualizować instancje Twojej aplikacji. Po stworzeniu Deploymentu, węzeł <em>master</em> Kubernetesa
34
-
zleca uruchomienie tej aplikacji na indywidualnych węzłach klastra.
37
+
Mając <ahref="/pl/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/">działający klaster Kubernetesa</a>, można na nim zacząć instalować aplikacje.
38
+
W tym celu należy utworzyć <b>Deployment</b>. Deployment informuje Kubernetesa,
39
+
jak tworzyć i aktualizować instancje Twojej aplikacji. Po stworzeniu Deploymentu, warstwa sterowania Kubernetesa
40
+
zleca uruchomienie tej aplikacji na indywidualnych węzłach
41
+
klastra.
35
42
</p>
36
43
37
-
<p>Po utworzeniu instancji aplikacji, Kubernetes Deployment Controller na bieżąco monitoruje te instancje. Jeśli węzeł, na którym działała jedna z instancji ulegnie awarii lub zostanie usunięty, Deployment Controller zamieni tę instancję z instancją na innym węźle klastra. <b>W ten sposób działa samo naprawiający się mechanizm, który reaguje na awarie lub wyłączenia maszyn w klastrze.</b></p>
44
+
<p>Po utworzeniu instancji aplikacji, kontroler Deploymentu Kubernetesa na bieżąco monitoruje te instancje. Jeśli węzeł, na którym działała jedna z instancji ulegnie awarii lub zostanie usunięty, kontroler Deploymentu zamieni tę instancję z instancją na innym węźle klastra. <b>W ten sposób działa samo naprawiający się mechanizm, który reaguje na awarie lub wyłączenia maszyn w klastrze.</b></p>
38
45
39
-
<p>W czasach przed wprowadzeniem takiej automatyzacji, skrypty instalacyjne używane były zazwyczaj do uruchomienia aplikacji, ale nie radziły sobie z awariami maszyn. Poprzez połączenie procesu instalacji i kontroli nad działaniem aplikacji na węzłach, Deployment Kubernetes oferuje fundamentalnie różne podejście do zarządzania aplikacjami.</p>
46
+
<p>W czasach przed wprowadzeniem takiej automatyzacji, skrypty instalacyjne używane były zazwyczaj do uruchomienia aplikacji, ale nie radziły sobie z awariami maszyn. Poprzez połączenie procesu instalacji i kontroli nad działaniem aplikacji na węzłach, Deployment Kubernetesa oferuje fundamentalnie różne podejście do zarządzania aplikacjami.</p>
40
47
41
48
</div>
42
49
43
50
<divclass="col-md-4">
44
51
<divclass="content__box content__box_lined">
45
52
<h3>Podsumowanie:</h3>
46
53
<ul>
47
-
<li>Deployments</li>
54
+
<li>Deploymenty</li>
48
55
<li>Kubectl</li>
49
56
</ul>
50
57
</div>
@@ -73,7 +80,7 @@ <h2 style="color: #3771e3;">Instalacja pierwszej aplikacji w Kubernetes</h2>
73
80
<divclass="row">
74
81
<divclass="col-md-8">
75
82
76
-
<p>Do tworzenia i zarządzaniem Deploymentem służy polecenie linii komend, <b>Kubectl</b>. Kubectl używa Kubernetes API do komunikacji z klasterem. W tym module nauczysz się najczęściej używanych poleceń Kubectl niezbędnych do stworzenia Deploymentu, który uruchomi Twoje aplikacje na klastrze Kubernetes.</p>
83
+
<p>Do tworzenia i zarządzaniem Deploymentem służy polecenie linii komend, <b>kubectl</b>. Kubectl używa Kubernetes API do komunikacji z klasterem. W tym module nauczysz się najczęściej używanych poleceń kubectl niezbędnych do stworzenia Deploymentu, który uruchomi Twoje aplikacje na klastrze Kubernetes.</p>
77
84
78
85
<p>Tworząc Deployment musisz określić obraz kontenera oraz liczbę replik, które mają być uruchomione. Te ustawienia możesz zmieniać później, aktualizując Deployment. Moduły <ahref="/pl/docs/tutorials/kubernetes-basics/scale/scale-intro/">5</a> oraz <ahref="/pl/docs/tutorials/kubernetes-basics/update/update-intro/">6</a> omawiają skalowanie i aktualizowanie Deploymentów.</p>
79
86
@@ -92,9 +99,71 @@ <h2 style="color: #3771e3;">Instalacja pierwszej aplikacji w Kubernetes</h2>
92
99
<divclass="col-md-8">
93
100
<p>
94
101
Na potrzeby pierwszej instalacji użyjesz aplikacji hello-node zapakowaną w kontener Docker-a, która korzysta z NGINXa i powtarza wszystkie wysłane do niej zapytania. (Jeśli jeszcze nie próbowałeś stworzyć aplikacji hello-node i uruchomić za pomocą kontenerów, możesz spróbować teraz, kierując się instrukcjami samouczka <ahref="/pl/docs/tutorials/hello-minikube/">Hello Minikube</a>).
95
-
<p>
102
+
<p>Musisz mieć zainstalowane narzędzie kubectl. Jeśli potrzebujesz go zainstalować, odwiedź <ahref="/docs/tasks/tools/#kubectl">install tools</a>.</p>
103
+
<p>Skoro wiesz już, czym są Deploymenty, przeprowadźmy wdrożenie pierwszej aplikacji!</p>
104
+
</div>
105
+
</div>
106
+
<br>
107
+
108
+
<divclass="row">
109
+
<divclass="col-md-8">
110
+
<h3>Podstawy kubectl</h3>
111
+
<p>Typowy format polecenia kubectl to: <code>kubectl <i>akcja zasób</i></code></p>
112
+
<p>Wykonuje określoną <em>akcję</em> (jak <tt>create</tt>, <tt>describe</tt> lub <tt>delete</tt>) na określonym <em>zasobie</em> (jak <tt>node</tt> lub <tt>deployment</tt>). Możesz użyć <code>-<span/>-help</code> po poleceniu, aby uzyskać dodatkowe informacje o możliwych parametrach (na przykład: <code>kubectl get nodes --help</code>).</p>
113
+
<p>Sprawdź, czy kubectl jest skonfigurowany do komunikacji z twoim klastrem, uruchamiając polecenie <b><code>kubectl version</code></b>.</p>
114
+
<p>Sprawdź, czy kubectl jest zainstalowane oraz czy możesz zobaczyć zarówno wersję klienta, jak i serwera.</p>
115
+
<p>Aby wyświetlić węzły w klastrze, uruchom polecenie <b><code>kubectl get nodes</code></b>.</p>
116
+
<p>Zobaczysz dostępne węzły. Kubernetes wybierze, gdzie wdrożyć naszą aplikację, w oparciu o dostępne zasoby węzła.</p>
117
+
</div>
118
+
</div>
119
+
<divclass="row">
120
+
<divclass="col-md-12">
121
+
<aid="deploy-an-app"></a>
122
+
<h3>Wdrażanie aplikacji</h3>
123
+
<p>Uruchommy naszą pierwszą aplikację na Kubernetesie, używając polecenia <code>kubectl create deployment</code>. Musimy podać nazwę wdrożenia oraz lokalizację obrazu aplikacji (w tym pełny adres URL repozytorium dla obrazów hostowanych poza Docker Hub).</p>
<p>Świetnie! Właśnie wdrożyłeś swoją pierwszą aplikację, tworząc wdrożenie. Kubernetes wykonał dla Ciebie kilka rzeczy:</p>
126
+
<ul>
127
+
<li>wyszukał odpowiedni węzeł, na którym można uruchomić instancję aplikacji (mamy dostępny tylko 1 węzeł)</li>
128
+
<li>zaplanował uruchomienie aplikacji na tym węźle</li>
129
+
<li>skonfigurował klaster tak, aby w razie potrzeby ponownie uruchomić instancję na nowym węźle.</li>
130
+
</ul>
131
+
<p>Aby wyświetlić listę swoich wdrożeń, użyj polecenia <code>kubectl get deployments</code>:</p>
132
+
<p><b><code>kubectl get deployments</code></b></p>
133
+
<p>Widzimy, że jest jeden Deployment uruchamiający pojedynczą instancję Twojej aplikacji. Instancja działa wewnątrz kontenera na Twoim węźle.</p>
96
134
</div>
97
135
</div>
136
+
<divclass="row">
137
+
<divclass="col-md-12">
138
+
<h3>Zobacz aplikację</h3>
139
+
<p><ahref="/docs/concepts/workloads/pods/">Pody</a> działające wewnątrz Kubernetesa działają na prywatnej, izolowanej sieci.
140
+
Domyślnie są one widoczne z innych podów i usług w ramach tego samego klastra Kubernetesa, ale nie poza tą siecią.
141
+
Kiedy używamy <code>kubectl</code>, komunikujemy się z aplikacją za pośrednictwem API.</p>
142
+
<p>Później, w <ahref="/pl/docs/tutorials/kubernetes-basics/expose/">Module 4</a>, omówimy inne opcje dotyczące sposobów udostępniania Twojej aplikacji poza klastrem Kubernetesa.
143
+
Ponieważ jest to tylko podstawowy samouczek, to nie wyjaśniamy tutaj szczegółowo, czym są <code>Pody</code>, bo będzie to omówione w późniejszych tematach.</p>
144
+
<p>Polecenie <code>kubectl proxy</code> może utworzyć proxy, które przekaże komunikację do ogólnoklastrowej, prywatnej sieci. Proxy można zakończyć poprzez naciśnięcie control-C - podczas działania nie wyświetla ono żadnych komunikatów.</p>
145
+
<p><strong>Musisz otworzyć drugie okno terminala, aby uruchomić proxy.</strong></p>
146
+
<p><b><code>kubectl proxy</b></code>
147
+
<p>Mamy teraz połączenie pomiędzy naszym hostem (terminalem) a klastrem Kubernetes. Proxy umożliwia bezpośredni dostęp do API z tych terminali.</p>
148
+
<p>Możesz zobaczyć wszystkie te interfejsy API hostowane przez punkt końcowy serwera proxy. Na przykład możemy bezpośrednio zapytać o wersję za pomocą polecenia <code>curl</code>:</p>
<divclass="alert alert-info note callout" role="alert"><strong>Uwaga:</strong> Jeśli port 8001 jest niedostępny, upewnij się, że <code>kubectl proxy</code>, który uruchomiłeś wyżej, działa w drugim terminalu.</div>
151
+
<p>Serwer API automatycznie utworzy punkt końcowy dla każdego poda, bazując na nazwie poda, który jest również dostępny przez serwer proxy.</p>
152
+
<p>Najpierw musimy uzyskać nazwę Poda i zapisać ją w zmiennej środowiskowej <tt>POD_NAME</tt>:</p>
153
+
<p><b><code>export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')</code></b><br/>
154
+
<b><code>echo Nazwa Pod: $POD_NAME</code></b></p>
155
+
<p>Możesz uzyskać dostęp do Poda za pośrednictwem API z proxy, uruchamiając:</p>
<p>Aby nowy Deployment był dostępny bez użycia proxy, wymagane jest utworzenie obiektu usługi (ang. Service), co zostanie wyjaśnione w <ahref="/pl/docs/tutorials/kubernetes-basics/expose/">Module 4</a>.</p>
158
+
</div>
159
+
160
+
</div>
161
+
<divclass="row">
162
+
<p>
163
+
Gdy będziesz gotowy, przejdź do <ahref="/pl/docs/tutorials/kubernetes-basics/explore/explore-intro/" title="Podgląd Podów i Węzłów">Podgląd Podów i Węzłów</a>.
0 commit comments