Skip to content

Commit 2019765

Browse files
authored
Merge pull request #51180 from dkarczmarski/pl-sync-48592-kubernetes-basics-deploy-app
[pl] sync tutorials/kubernetes-basics/deploy-app with PR 48592
2 parents 2a4f4ba + 2157cc0 commit 2019765

File tree

2 files changed

+171
-173
lines changed

2 files changed

+171
-173
lines changed

content/pl/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro.html

Lines changed: 0 additions & 173 deletions
This file was deleted.
Lines changed: 171 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,171 @@
1+
---
2+
title: Jak użyć kubectl do tworzenia Deploymentu
3+
weight: 10
4+
---
5+
6+
## {{% heading "objectives" %}}
7+
8+
* Poznaj sposób wdrażania aplikacji.
9+
* Wdróż swoją pierwszą aplikację na Kubernetesie za pomocą narzędzia kubectl.
10+
11+
## Deploymenty w Kubernetesie {#kubernetes-deployments}
12+
13+
{{% alert %}}
14+
_Deployment odpowiada za stworzenie i aktualizacje instancji Twojej aplikacji._
15+
{{% /alert %}}
16+
17+
{{< note >}}
18+
Ten samouczek wykorzystuje kontener wymagający architektury AMD64. Jeśli używasz
19+
minikube na komputerze z inną architekturą CPU, możesz spróbować użyć minikube z
20+
sterownikiem, który potrafi emulować AMD64. Na przykład potrafi to zrobić sterownik Docker Desktop.
21+
{{< /note >}}
22+
23+
Mając [działający klaster Kubernetesa](/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/),
24+
można na nim zacząć
25+
instalować aplikacje. W tym celu należy utworzyć **Deployment**.
26+
Deployment informuje Kubernetesa, jak tworzyć i aktualizować instancje
27+
Twojej aplikacji. Po stworzeniu Deploymentu, warstwa sterowania
28+
Kubernetesa zleca uruchomienie tej aplikacji na indywidualnych węzłach klastra.
29+
30+
Po utworzeniu instancji aplikacji, kontroler Deploymentu Kubernetesa na
31+
bieżąco monitoruje te instancje. Jeśli węzeł, na którym działała jedna z
32+
instancji ulegnie awarii lub zostanie usunięty, kontroler Deploymentu zamieni tę
33+
instancję z instancją na innym węźle klastra.
34+
**W ten sposób działa samonaprawiający się mechanizm, który reaguje na awarie lub wyłączenia maszyn w klastrze.**
35+
36+
W czasach przed wprowadzeniem takiej automatyzacji, skrypty instalacyjne używane
37+
były zazwyczaj do uruchomienia aplikacji, ale nie radziły sobie z awariami maszyn.
38+
Poprzez połączenie procesu instalacji i kontroli nad działaniem aplikacji na węzłach, Deployment
39+
Kubernetesa oferuje fundamentalnie różne podejście do zarządzania aplikacjami.
40+
41+
## Instalacja pierwszej aplikacji w Kubernetesie {#deploying-your-first-app-on-kubernetes}
42+
43+
{{% alert %}}
44+
_Aby aplikacja mogła zostać uruchomiona w Kubernetesie, musi być opakowana w jeden z obsługiwanych formatów kontenerów._
45+
46+
{{% /alert %}}
47+
48+
{{< figure src="/docs/tutorials/kubernetes-basics/public/images/module_02_first_app.svg" class="diagram-medium" >}}
49+
50+
Do tworzenia i zarządzaniem Deploymentem służy polecenie linii komend,
51+
[kubectl](/docs/reference/kubectl/). Kubectl używa API Kubernetesa do komunikacji z
52+
klasterem. W tym module nauczysz się najczęściej używanych poleceń kubectl
53+
niezbędnych do stworzenia Deploymentu, który uruchomi Twoje aplikacje na klastrze Kubernetesa.
54+
55+
Tworząc Deployment musisz określić obraz kontenera oraz liczbę
56+
replik, które mają być uruchomione. Te ustawienia możesz zmieniać
57+
później, aktualizując Deployment. [Moduł 5](/docs/tutorials/kubernetes-basics/scale/scale-intro/)
58+
oraz [Moduł 6](/docs/tutorials/kubernetes-basics/update/update-intro/)
59+
omawiają skalowanie i aktualizowanie Deploymentów.
60+
61+
Na potrzeby pierwszej instalacji użyjesz aplikacji hello-node zapakowaną w kontener Docker-a,
62+
która korzysta z NGINXa i powtarza wszystkie wysłane do niej zapytania. (Jeśli jeszcze nie
63+
próbowałeś stworzyć aplikacji hello-node i uruchomić za pomocą kontenerów, możesz spróbować
64+
teraz, kierując się instrukcjami samouczka [samouczku Hello Minikube](/docs/tutorials/hello-minikube/).
65+
66+
Musisz mieć zainstalowane narzędzie kubectl. Jeśli potrzebujesz
67+
go zainstalować, odwiedź [install tools](/docs/tasks/tools/#kubectl).
68+
69+
Skoro wiesz już, czym są Deploymenty, przeprowadźmy wdrożenie pierwszej aplikacji!
70+
71+
### Podstawy kubectl {#kubectl-basics}
72+
73+
Typowy format polecenia kubectl to: `kubectl akcja zasób`.
74+
75+
Wykonuje określoną _akcję_ (jak `create`, `describe` lub `delete`) na określonym
76+
_zasobie_ (jak `node` lub `deployment`). Możesz użyć `--help` po poleceniu, aby uzyskać dodatkowe
77+
informacje o możliwych parametrach (na przykład: `kubectl get nodes --help`).
78+
79+
Sprawdź, czy kubectl jest skonfigurowany do komunikacji z twoim klastrem, uruchamiając polecenie `kubectl version`.
80+
81+
Sprawdź, czy kubectl jest zainstalowane oraz czy możesz zobaczyć zarówno wersję klienta, jak i serwera.
82+
83+
Aby wyświetlić węzły w klastrze, uruchom polecenie `kubectl get nodes`.
84+
85+
Zobaczysz dostępne węzły. Kubernetes wybierze, gdzie
86+
wdrożyć naszą aplikację, w oparciu o dostępne zasoby węzła.
87+
88+
### Wdrażanie aplikacji {#deploy-an-app}
89+
90+
Uruchommy naszą pierwszą aplikację na Kubernetesie, używając polecenia
91+
`kubectl create deployment`. Musimy podać nazwę wdrożenia oraz lokalizację obrazu
92+
aplikacji (w tym pełny adres URL repozytorium dla obrazów hostowanych poza Docker Hub).
93+
94+
```shell
95+
kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
96+
```
97+
98+
Świetnie! Właśnie wdrożyłeś swoją pierwszą aplikację, tworząc Deployment. Kubernetes wykonał dla Ciebie kilka rzeczy:
99+
100+
* wyszukał odpowiedni węzeł, na którym można uruchomić instancję aplikacji (mamy dostępny tylko 1 węzeł)
101+
- zaplanował uruchomienie aplikacji na tym węźle
102+
* skonfigurował klaster tak, aby w razie potrzeby ponownie uruchomić instancję na nowym węźle
103+
104+
Aby wyświetlić listę swoich wdrożeń, użyj polecenia `kubectl get deployments`:
105+
106+
```shell
107+
kubectl get deployments
108+
```
109+
110+
Widzimy, że jest jeden Deployment uruchamiający pojedynczą instancję Twojej
111+
aplikacji. Instancja działa wewnątrz kontenera na Twoim węźle.
112+
113+
### Zobacz aplikację {#view-the-app}
114+
115+
[Pody](/docs/concepts/workloads/pods/) działające wewnątrz Kubernetesa
116+
działają na prywatnej, izolowanej sieci. Domyślnie są one widoczne z innych
117+
podów i usług w ramach tego samego klastra Kubernetesa, ale nie poza tą
118+
siecią. Kiedy używamy `kubectl`, komunikujemy się z aplikacją za pośrednictwem API.
119+
120+
Później, w [Module 4](/docs/tutorials/kubernetes-basics/expose/), omówimy
121+
inne opcje dotyczące sposobów udostępniania Twojej aplikacji poza klastrem
122+
Kubernetesa. Ponieważ jest to tylko podstawowy samouczek, to nie wyjaśniamy
123+
tutaj szczegółowo, czym są `Pody`, bo będzie to omówione w późniejszych tematach.
124+
125+
Polecenie `kubectl proxy` może utworzyć proxy, które przekaże komunikację do
126+
ogólnoklastrowej, prywatnej sieci. Proxy można zakończyć poprzez
127+
naciśnięcie control-C - podczas działania nie wyświetla ono żadnych komunikatów.
128+
129+
**Musisz otworzyć drugie okno terminala, aby uruchomić proxy.**
130+
131+
```shell
132+
kubectl proxy
133+
```
134+
Mamy teraz połączenie pomiędzy naszym hostem (terminalem) a klastrem
135+
Kubernetesa. Proxy umożliwia bezpośredni dostęp do API z tych terminali.
136+
137+
Możesz zobaczyć wszystkie te interfejsy API hostowane przez punkt końcowy serwera proxy.
138+
Na przykład możemy bezpośrednio zapytać o wersję za pomocą polecenia `curl`:
139+
140+
```shell
141+
curl http://localhost:8001/version
142+
```
143+
144+
{{< note >}}
145+
Jeśli port 8001 jest niedostępny, upewnij się, że
146+
`kubectl proxy`, który uruchomiłeś wyżej, działa w drugim terminalu.
147+
{{< /note >}}
148+
149+
Serwer API automatycznie utworzy punkt końcowy dla każdego poda,
150+
bazując na nazwie poda, który jest również dostępny przez serwer proxy.
151+
152+
Najpierw musimy uzyskać nazwę Poda i zapisać ją w zmiennej środowiskowej `POD_NAME`.
153+
154+
```shell
155+
export POD_NAME=$(kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}')
156+
echo Name of the Pod: $POD_NAME
157+
```
158+
159+
Możesz uzyskać dostęp do Poda za pośrednictwem API z proxy, uruchamiając:
160+
161+
```shell
162+
curl http://localhost:8001/api/v1/namespaces/default/pods/$POD_NAME:8080/proxy/
163+
```
164+
165+
Aby nowy Deployment był dostępny bez użycia proxy, wymagane jest utworzenie obiektu usługi
166+
(ang. Service), co zostanie wyjaśnione w [Module 4](/docs/tutorials/kubernetes-basics/expose/).
167+
168+
## {{% heading "whatsnext" %}}
169+
170+
* Samouczek [Pody i Węzły](/docs/tutorials/kubernetes-basics/explore/explore-intro/).
171+
* Dowiedz się więcej o [Deploymentach](/docs/concepts/workloads/controllers/deployment/).

0 commit comments

Comments
 (0)