Skip to content

Commit bf9800a

Browse files
New translations lab12-smoke-test.md (Ukrainian)
1 parent ec8feab commit bf9800a

File tree

1 file changed

+204
-0
lines changed

1 file changed

+204
-0
lines changed
Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
---
2+
author: Wale Soyinka
3+
contributors: Steven Spencer, Ganna Zhyrnova
4+
tags:
5+
- kubernetes
6+
- k8s
7+
- лабораторна вправа
8+
- runc
9+
- containerd
10+
- etcd
11+
- kubectl
12+
---
13+
14+
# Лабораторна робота 12: Smoke Test
15+
16+
> Це вітка оригінального ["Kubernetes the hard way"](https://github.com/kelseyhightower/kubernetes-the-hard-way), яку спочатку створив Келсі Хайтауер (GitHub: kelseyhightower). На відміну від оригіналу, який базується на дистрибутивах, подібних до Debian, для архітектури ARM64, ця гілка націлена на дистрибутиви Enterprise Linux, такі як Rocky Linux, що працюють на архітектурі x86_64.
17+
18+
У цій лабораторній роботі ви виконуватимете завдання, щоб переконатися, що ваш кластер Kubernetes функціонує правильно.
19+
20+
## Шифрування даних
21+
22+
У цьому розділі ви перевірите здатність [шифрувати секретні дані в стані спокою](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/#verifying-that-data-is-encrypted).
23+
24+
Створіть загальний секрет:
25+
26+
```bash
27+
kubectl create secret generic kubernetes-the-hard-way \
28+
--from-literal="mykey=mydata"
29+
```
30+
31+
Надрукуйте шістнадцятковий дамп секрету `kubernetes-the-hard-way`, який зберігається в `etcd`:
32+
33+
```bash
34+
ssh root@server \
35+
'etcdctl get /registry/secrets/default/kubernetes-the-hard-way | hexdump -C'
36+
```
37+
38+
```text
39+
00000000 2f 72 65 67 69 73 74 72 79 2f 73 65 63 72 65 74 |/registry/secret|
40+
00000010 73 2f 64 65 66 61 75 6c 74 2f 6b 75 62 65 72 6e |s/default/kubern|
41+
00000020 65 74 65 73 2d 74 68 65 2d 68 61 72 64 2d 77 61 |etes-the-hard-wa|
42+
00000030 79 0a 6b 38 73 3a 65 6e 63 3a 61 65 73 63 62 63 |y.k8s:enc:aescbc|
43+
00000040 3a 76 31 3a 6b 65 79 31 3a 67 64 d4 64 d9 6c eb |:v1:key1:gd.d.l.|
44+
00000050 f3 a9 80 8c 82 a0 f3 50 e6 eb 02 cb a6 65 8b 51 |.......P.....e.Q|
45+
00000060 0a 03 2f ef 4a a8 d9 7d 62 f5 68 27 74 1c 6d 88 |../.J..}b.h't.m.|
46+
00000070 ee 89 39 8d c9 e4 c6 2c 9c 3f 55 3b eb 79 2c 55 |..9....,.?U;.y,U|
47+
00000080 d9 47 ec 77 84 0b 6e b1 ab 58 41 22 1e c3 7c 00 |.G.w..n..XA"..|.|
48+
00000090 92 ad ad d0 97 55 f4 d5 b6 1e 6d 57 fb 2f 7c 36 |.....U....mW./|6|
49+
000000a0 f5 6a 45 5e a7 a4 70 52 1d 9d 00 61 14 cd f3 92 |.jE^..pR...a....|
50+
000000b0 9a 05 57 dd cf 41 1c 74 0c a7 2c ac 64 f5 79 51 |..W..A.t..,.d.yQ|
51+
000000c0 e6 5c 16 e1 a9 5e da 00 91 d0 f5 77 e2 32 8f a2 |.\...^.....w.2..|
52+
000000d0 9a c3 26 50 f2 a0 f8 f9 95 09 20 29 f1 7c 7a 7d |..&P...... ).|z}|
53+
000000e0 4f 82 0b 78 43 28 91 a1 56 ee 66 90 fb ac 26 8c |O..xC(..V.f...&.|
54+
000000f0 a3 b4 b2 ed 2d 0a d3 54 d1 10 89 a4 c3 dd b6 2d |....-..T.......-|
55+
00000100 b9 d7 98 bb db c4 0d f2 96 5a 57 8b 01 2e 97 43 |.........ZW....C|
56+
00000110 ea 9c 8b cf cc 9b 80 cd 02 c8 c5 a4 e7 bf 62 73 |..............bs|
57+
00000120 e6 6b e8 c2 cf 34 50 2b e0 3c 66 a2 29 4f 08 0c |.k...4P+.<f.)O..|
58+
00000130 65 99 e4 9f 40 4f d9 94 eb 40 bd 3a 01 77 95 2b |e...@O...@.:.w.+|
59+
00000140 c9 20 ea a8 73 d9 19 2d d8 00 9b da 3e 55 3e 82 |. ..s..-....>U>.|
60+
00000150 80 3a 39 d5 08 f9 6c de 6b 0a |.:9...l.k.|
61+
0000015a
62+
```
63+
64+
Вам потрібно додати до ключа `etcd` префікс `k8s:enc:aescbc:v1:key1`, що означає використання постачальника `aescbc` для шифрування даних за допомогою ключа шифрування `key1`.
65+
66+
## Розгортання
67+
68+
У цьому розділі ви перевірите здатність створювати [розгортання] та керувати ними (https://kubernetes.io/docs/concepts/workloads/controllers/deployment/).
69+
70+
Створіть розгортання веб-сервера [nginx](https://nginx.org/en/):
71+
72+
```bash
73+
kubectl create deployment nginx \
74+
--image=nginx:latest
75+
```
76+
77+
Перелічіть модуль, створений розгортанням `nginx`:
78+
79+
```bash
80+
kubectl get pods -l app=nginx
81+
```
82+
83+
```bash
84+
NAME READY STATUS RESTARTS AGE
85+
nginx-54c98b4f84-dfwl9 1/1 Running 0 71s
86+
```
87+
88+
### Переадресація портів
89+
90+
У цьому розділі ви перевірите можливість віддаленого доступу до програм за допомогою [переадресації портів](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/).
91+
92+
Отримайте повну назву модуля `nginx`:
93+
94+
```bash
95+
POD_NAME=$(kubectl get pods -l app=nginx \
96+
-o jsonpath="{.items[0].metadata.name}")
97+
```
98+
99+
Перенаправте порт `8080` на вашій локальній машині на порт `80` модуля `nginx`:
100+
101+
```bash
102+
kubectl port-forward $POD_NAME 8080:80
103+
```
104+
105+
```text
106+
Forwarding from 127.0.0.1:8080 -> 80
107+
Forwarding from [::1]:8080 -> 80
108+
```
109+
110+
У новому терміналі зробіть HTTP-запит із адресою пересилання:
111+
112+
```bash
113+
curl --head http://127.0.0.1:8080
114+
```
115+
116+
```text
117+
HTTP/1.1 200 OK
118+
Server: nginx/1.27.4
119+
Date: Tue, 04 Mar 2025 01:30:20 GMT
120+
Content-Type: text/html
121+
Content-Length: 615
122+
Last-Modified: Wed, 05 Feb 2025 11:06:32 GMT
123+
Connection: keep-alive
124+
ETag: "67a34638-267"
125+
Accept-Ranges: bytes
126+
```
127+
128+
Поверніться до попереднього терміналу та зупиніть переадресацію портів на модуль `nginx`, ввівши ++ctrl+c++:
129+
130+
```text
131+
Forwarding from 127.0.0.1:8080 -> 80
132+
Forwarding from [::1]:8080 -> 80
133+
Handling connection for 8080
134+
^C
135+
```
136+
137+
### Логи
138+
139+
У цьому розділі ви перевірите здатність [отримувати журнали контейнерів](https://kubernetes.io/docs/concepts/cluster-administration/logging/).
140+
141+
Роздрукуйте журнали модулів `nginx`:
142+
143+
```bash
144+
kubectl logs $POD_NAME
145+
```
146+
147+
```text
148+
...<OUTPUT TRUNCATED>...
149+
127.0.0.1 - - [04/Mar/2025:01:30:20 +0000] "HEAD / HTTP/1.1" 200 0 "-" "curl/7.76.1" "-"
150+
```
151+
152+
### Виконання
153+
154+
У цьому розділі ви перевірите здатність [виконувати команди в контейнері](https://kubernetes.io/docs/tasks/debug-application-cluster/get-shell-running-container/#running-individual-commands-in-a-container).
155+
156+
Роздрукуйте версію `nginx`, виконавши команду `nginx -v` в контейнері `nginx`:
157+
158+
```bash
159+
kubectl exec -ti $POD_NAME -- nginx -v
160+
```
161+
162+
```text
163+
nginx version: nginx/1.27.4
164+
```
165+
166+
## Послуги
167+
168+
У цьому розділі ви перевірите здатність відкривати додатки за допомогою [Служби](https://kubernetes.io/docs/concepts/services-networking/service/).
169+
170+
Розкрийте розгортання `nginx` за допомогою служби [NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport):
171+
172+
```bash
173+
kubectl expose deployment nginx \
174+
--port 80 --type NodePort
175+
```
176+
177+
> Ви не можете використовувати тип служби LoadBalancer, оскільки ваш кластер не налаштовано з [інтеграцією хмарного постачальника](https://kubernetes.io/docs/getting-started-guides/scratch/#cloud-provider). У цьому підручнику не розглядається налаштування інтеграції хмарних провайдерів.
178+
179+
Отримайте порт вузла, призначений службі `nginx`:
180+
181+
```bash
182+
NODE_PORT=$(kubectl get svc nginx \
183+
--output=jsonpath='{range .spec.ports[0]}{.nodePort}')
184+
```
185+
186+
Зробіть HTTP-запит із IP-адресою та портом вузла `nginx`:
187+
188+
```bash
189+
curl -I http://node-0:${NODE_PORT}
190+
```
191+
192+
```text
193+
HTTP/1.1 200 OK
194+
Server: nginx/1.27.4
195+
Date: Tue, 04 Mar 2025 01:40:20 GMT
196+
Content-Type: text/html
197+
Content-Length: 615
198+
Last-Modified: Wed, 05 Feb 2025 11:06:32 GMT
199+
Connection: keep-alive
200+
ETag: "67a34638-267"
201+
Accept-Ranges: bytes
202+
```
203+
204+
Далі: [Очищення](lab13-cleanup.md)

0 commit comments

Comments
 (0)