Skip to content

Commit fec0c6f

Browse files
New translations lab9-bootstrapping-kubernetes-workers.md (Ukrainian)
1 parent b99e667 commit fec0c6f

File tree

1 file changed

+201
-0
lines changed

1 file changed

+201
-0
lines changed
Lines changed: 201 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,201 @@
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+
# Лабораторна робота 9: Завантаження робочих вузлів Kubernetes
15+
16+
!!! info
17+
18+
Це гілка розгалуження від оригінальної ["Kubernetes the hard way"](https://github.com/kelseyhightower/kubernetes-the-hard-way), Келсі Хайтауера (GitHub: kelseyhightower). На відміну від оригіналу, який базується на дистрибутивах, подібних до Debian, для архітектури ARM64, ця гілка націлена на дистрибутиви Enterprise Linux, такі як Rocky Linux, який працює на архітектурі x86_64.
19+
20+
У цій лабораторній роботі ви завантажите два робочі вузли Kubernetes. Ви встановите такі компоненти: [runc](https://github.com/opencontainers/runc), [плагіни мережевих контейнерів](https://github.com/containernetworking/cni), [containerd](https://github.com/containerd/containerd), [kubelet](https://kubernetes.io/docs/admin/kubelet) і [kube-proxy](https://kubernetes.io/docs/concepts/cluster-administration/proxies).
21+
22+
## Передумови
23+
24+
З `jumpbox` скопіюйте двійкові файли Kubernetes і файли блоку `systemd` до кожного робочого екземпляра:
25+
26+
```bash
27+
for host in node-0 node-1; do
28+
SUBNET=$(grep $host machines.txt | cut -d " " -f 5)
29+
sed "s|SUBNET|$SUBNET|g" \
30+
configs/10-bridge.conf > 10-bridge.conf
31+
32+
sed "s|SUBNET|$SUBNET|g" \
33+
configs/kubelet-config.yaml > kubelet-config.yaml
34+
35+
scp 10-bridge.conf kubelet-config.yaml \
36+
root@$host:~/
37+
done
38+
```
39+
40+
```bash
41+
for host in node-0 node-1; do
42+
scp \
43+
downloads/runc.amd64 \
44+
downloads/crictl-v1.32.0-linux-amd64.tar.gz \
45+
downloads/cni-plugins-linux-amd64-v1.6.2.tgz \
46+
downloads/containerd-2.0.3-linux-amd64.tar.gz \
47+
downloads/kubectl \
48+
downloads/kubelet \
49+
downloads/kube-proxy \
50+
configs/99-loopback.conf \
51+
configs/containerd-config.toml \
52+
configs/kubelet-config.yaml \
53+
configs/kube-proxy-config.yaml \
54+
units/containerd.service \
55+
units/kubelet.service \
56+
units/kube-proxy.service \
57+
root@$host:~/
58+
done
59+
```
60+
61+
Команди в цій лабораторній роботі потрібно запускати окремо для кожного робочого екземпляра: `node-0` і `node-1`. Показані лише кроки для `node-0`. Ви повинні повторити точні кроки та команди на `node-1`.
62+
63+
Увійдіть до робочого екземпляра `node-0` за допомогою команди `ssh`.
64+
65+
```bash
66+
ssh root@node-0
67+
```
68+
69+
## Надання робочого вузла Kubernetes
70+
71+
Встановіть залежності операційної системи:
72+
73+
```bash
74+
dnf -y update
75+
dnf -y install socat conntrack ipset tar
76+
```
77+
78+
> Двійковий файл `socat` підтримує команду `kubectl port-forward`.
79+
80+
### Вимкніть Swap
81+
82+
Якщо ви ввімкнули [swap](https://help.ubuntu.com/community/SwapFaq), kubelet не запуститься. [Рекомендовано вимкнути swap](https://github.com/kubernetes/kubernetes/issues/7294), щоб Kubernetes забезпечував належний розподіл ресурсів і якість обслуговування.
83+
84+
Перевірте, чи ввімкнено обмін:
85+
86+
```bash
87+
swapon --show
88+
```
89+
90+
Якщо вихідні дані порожні, то обмін не ввімкнено. Якщо вихідні дані не порожні, виконайте таку команду, щоб негайно вимкнути обмін:
91+
92+
```bash
93+
swapoff -a
94+
```
95+
96+
Щоб гарантувати, що підкачка залишиться вимкненою після перезавантаження, закоментуйте рядок, який автоматично монтує том підкачки у файлі `/etc/fstab`. Впишіть:
97+
98+
```bash
99+
sudo sed -i '/swap/s/^/#/' /etc/fstab
100+
```
101+
102+
Створіть каталоги встановлення:
103+
104+
```bash
105+
mkdir -p \
106+
/etc/cni/net.d \
107+
/opt/cni/bin \
108+
/var/lib/kubelet \
109+
/var/lib/kube-proxy \
110+
/var/lib/kubernetes \
111+
/var/run/kubernetes
112+
```
113+
114+
Встановіть робочі двійкові файли:
115+
116+
```bash
117+
mkdir -p containerd
118+
tar -xvf crictl-v1.32.0-linux-amd64.tar.gz
119+
tar -xvf containerd-2.0.3-linux-amd64.tar.gz -C containerd
120+
tar -xvf cni-plugins-linux-amd64-v1.6.2.tgz -C /opt/cni/bin/
121+
mv runc.amd64 runc
122+
chmod +x crictl kubectl kube-proxy kubelet runc
123+
mv crictl kubectl kube-proxy kubelet runc /usr/local/bin/
124+
mv containerd/bin/* /bin/
125+
```
126+
127+
### Налаштуйте мережу CNI
128+
129+
Створіть файл конфігурації мережі `bridge`:
130+
131+
```bash
132+
mv 10-bridge.conf 99-loopback.conf /etc/cni/net.d/
133+
```
134+
135+
### Налаштуйте `containerd`
136+
137+
Встановіть конфігураційні файли `container`:
138+
139+
```bash
140+
mkdir -p /etc/containerd/
141+
mv containerd-config.toml /etc/containerd/config.toml
142+
mv containerd.service /etc/systemd/system/
143+
```
144+
145+
### Налаштуйте Kubelet
146+
147+
Створіть файл конфігурації `kubelet-config.yaml`:
148+
149+
```bash
150+
mv kubelet-config.yaml /var/lib/kubelet/
151+
mv kubelet.service /etc/systemd/system/
152+
```
153+
154+
### Налаштуйте проксі Kubernetes
155+
156+
```bash
157+
mv kube-proxy-config.yaml /var/lib/kube-proxy/
158+
mv kube-proxy.service /etc/systemd/system/
159+
```
160+
161+
!!! Note "Примітка"
162+
163+
Хоча це вважається поганою формою безпеки, вам, можливо, доведеться тимчасово або назавжди вимкнути SELinux, якщо у вас виникнуть проблеми із запуском необхідних служб systemd. Правильним рішенням є дослідження та створення необхідних файлів політики за допомогою таких інструментів, як ausearch, audit2allow тощо.\
164+
165+
Щоб виправити SELinux із шляху та вимкнути його, запустіть наступне:
166+
167+
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
168+
setenforce 0
169+
170+
### Запустіть Worker Services
171+
172+
```bash
173+
systemctl daemon-reload
174+
systemctl enable containerd kubelet kube-proxy
175+
systemctl start containerd kubelet kube-proxy
176+
```
177+
178+
## Верифікація
179+
180+
Екземпляри обчислень, створені в цьому посібнику, не матимуть дозволу на завершення цього розділу перевірки. Виконайте наступні команди з машини `jumpbox`.
181+
182+
Перелічіть зареєстровані вузли Kubernetes:
183+
184+
```bash
185+
ssh root@server "kubectl get nodes --kubeconfig admin.kubeconfig"
186+
```
187+
188+
```text
189+
NAME STATUS ROLES AGE VERSION
190+
node-0 Ready <none> 1m v1.32.0
191+
```
192+
193+
Після виконання всіх попередніх кроків у цій лабораторній роботі на `node-0` і `node-1` результат команди `kubectl get nodes` має показати:
194+
195+
```text
196+
NAME STATUS ROLES AGE VERSION
197+
node-0 Ready <none> 1m v1.32.0
198+
node-1 Ready <none> 10s v1.32.0
199+
```
200+
201+
Далі: [Налаштування kubectl для віддаленого доступу](lab10-configuring-kubectl.md)

0 commit comments

Comments
 (0)