0 Votes
Last modified by Сергей Коршунов on 2023/06/09 19:31

Hide last authors
Сергей Коршунов 1.1 1 = Как установить кластер Kubernetes с Kubeadm на Rocky Linux =
2
3 ----
4
5 1. Предпосылки
6 1. Настройка систем
7 1. Настройка файла /etc/hosts
8 1. Настройка правил брандмауэра
9 1. Настройка модулей SELinux и ядра и отключение SWAP
10 1. Установка среды выполнения контейнера: Containerd
11 1. Установка пакетов Kubernetes
12 1. Установка подключаемого модуля CNI: фланель
13 1. Инициализация плоскости управления Kubernetes
14 1. Добавление рабочих узлов в Kubernetes
15 1. Заключение
16
17
18 Kubernetes или k8s — это платформа с открытым исходным кодом для оркестрации контейнеров, которая автоматизирует развертывание, управление и масштабирование контейнерных приложений. Kubernetes — это оркестровка контейнеров, созданная Google, которая теперь стала проектом с открытым исходным кодом и стандартом для современных платформ развертывания приложений и вычислений.
19
20 Kubernetes — это решение для современной эпохи развертывания контейнеров. Он обеспечивает обнаружение служб и балансировку нагрузки, оркестрацию хранилища, автоматическое развертывание и откат, службу самовосстановления, управление секретами и конфигурацией. Kubernetes обеспечивает экономичную облачную разработку.
21
22 В этом руководстве вы настроите кластер Kubernetes, выполнив следующие действия:
23
24
25 1. Настройка системы, включающая настройку файла /etc/hosts, настройку SELinux, включение модулей ядра и отключение SWAP.
26 1. Настройка Firewalld путем добавления некоторых портов, необходимых для Kubernetes.
27 1. Установка containerd в качестве среды выполнения контейнера для Kubernetes.
28 1. Установка пакетов Kubernetes, таких как kubelet, kubeadm и kubectl.
29 1. Установка сетевого подключаемого модуля Flannel для модулей Kubernetes.
30 1. Инициализация одного узла плоскости управления и добавление двух рабочих узлов.
31
32
33 == Предпосылки ==
34
35 Для выполнения этого руководства вам потребуются следующие требования:
36
37
38 * Три или более серверов Rocky Linux.
39 * Пользователь без полномочий root с правами root/администратора.
40
41
42 == Настройка систем ==
43
44 Прежде чем вы начнете устанавливать какие-либо пакеты для развертывания Kubernetes, вам необходимо настроить все свои системы в соответствии с требованиями для развертывания Kubernetes. Сюда входят следующие конфигурации:
45
46
47 * Настройте правильный файл /etc/hosts: каждое имя хоста сервера должно быть преобразовано в правильный IP-адрес. Это можно сделать несколькими способами, но самый простой и удобный — использовать файл /etc/hosts на всех серверах.
48 * Настройка брандмауэра. Для производственной среды всегда рекомендуется включать брандмауэр как на уровне управления, так и на рабочих узлах.
49 * Настройка SELinux: В этом примере мы изменим правило SELinux по умолчанию на \разрешающий\.
50 * Включить модули ядра. Kubernetes требовал включения некоторых модулей ядра в системе Linux. Модуль ядра \overlay\ и \br_netfilter\ требуется, чтобы позволить iptables видеть трафик моста.
51 * Отключить SWAP: это обязательно, вы должны отключить SWAP на всех узлах Kubernetes, как на уровне управления, так и на рабочих узлах. В противном случае служба kubelet будет работать с проблемами.
52
53
54 == Настройка файла /etc/hosts ==
55
56 На этом первом шаге вы настроите системное имя хоста и файл /etc/hosts на всех ваших серверах. Для этой демонстрации мы будем использовать следующие серверы.
57
58 {{{Hostname              IP Address        Used as
59 -------------------------------------------------------
60 kube-master           192.168.5.10      control-plane
61 kube-kube-worker1     192.168.5.15      worker node
62 kube-kube-worker2     192.168.5.16      worker node}}}
63
64 Выполните приведенную ниже команду //hostnamectl//, чтобы настроить системное имя хоста на каждом сервере.
65
66 Для узла плоскости управления выполните следующую команду, чтобы установить системное имя хоста \//kube-master//\.
67
68 {{{sudo hostnamectl set-hostname kube-master}}}
69
70 Для рабочих узлов Kubernetes выполните следующую команду hostnamectl.
71
72 {{{# setup hostname kube-worker1
73 sudo hostnamectl set-hostname kube-worker1
74
75 # setup hostname kube-worker2
76 sudo hostnamectl set-hostname kube-worker2}}}
77
78 Затем измените файл ///etc/hosts// на всех серверах с помощью следующей команды.
79
80 {{{sudo nano /etc/hosts}}}
81
82 Добавьте следующую конфигурацию в файл. Убедитесь, что каждое имя хоста указывает на правильный IP-адрес.
83
84 {{{192.168.5.10 kube-master
85 192.168.5.15 kube-worker1
86 192.168.5.16 kube-worker2}}}
87
88 Сохраните и закройте файл, когда закончите.
89
90 Наконец, если вы запустите команду ping для каждого имени хоста, вам будет указан правильный IP-адрес, указанный в файле ///etc/hosts//.
91
92 {{{ping kube-master -c3
93 ping kube-worker1 -c3
94 ping kube-worker2 -c3}}}
95
96 == Настройка правил брандмауэра ==
97
98 Kubernetes требовал, чтобы некоторые порты были открыты во всех ваших системах. В системе на основе RHEL по умолчанию Firewalld является приложением брандмауэра по умолчанию. Вы добавите несколько портов в Firewalld для развертывания Kubernetes.
99
100 Для плоскости управления Kubernetes вам необходимо открыть следующие порты:
101
102 {{{Protocol  Direction Port Range  Purpose Used By
103 -----------------------------------------------
104 TCP       Inbound   6443        Kubernetes API server All
105 TCP       Inbound   2379-2380   etcd server client API  kube-apiserver, etcd
106 TCP       Inbound   10250       Kubelet API Self, Control plane
107 TCP       Inbound   10259       kube-scheduler  Self
108 TCP       Inbound   10257       kube-controller-manager Self}}}
109
110 Для рабочих узлов Kubernetes необходимо открыть следующие порты:
111
112 {{{Protocol  Direction Port Range  Purpose Used By
113 --------------------------------------------------
114 TCP       Inbound   10250       Kubelet API Self, Control plane
115 TCP       Inbound   30000-32767 NodePort Services†  All}}}
116
117 На узле плоскости управления \kube-master\ выполните следующую команду firewall-cmd, чтобы открыть порты плоскости управления Kubernetes. Затем перезагрузите правила Firewalld и проверьте список доступных правил.
118
119 {{{sudo firewall-cmd --add-port=6443/tcp --permanent
120 sudo firewall-cmd --add-port=2379-2380/tcp --permanent
121 sudo firewall-cmd --add-port=10250/tcp --permanent
122 sudo firewall-cmd --add-port=10259/tcp --permanent
123 sudo firewall-cmd --add-port=10257/tcp --permanent
124
125 sudo firewall-cmd --reload
126 sudo firewall-cmd --list-all}}}
127
128 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/1-setup-firewalld-kube-master.png]]
129
130 На рабочих узлах «kube-worker1» и «kube-worker2» выполните следующую команду firewall-cmd, чтобы открыть некоторые рабочие порты Kubernetes. Затем перезагрузите Firewalld и проверьте список доступных правил в Firewalld.
131
132 {{{sudo firewall-cmd --add-port=10250/tcp --permanent
133 sudo firewall-cmd --add-port=30000-32767/tcp --permanent
134
135 sudo firewall-cmd --reload
136 sudo firewall-cmd --list-all}}}
137
138 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/2-setup-firewalld-kube-worker.png]]
139
140 == Настройте модули SELinux и ядра и отключите SWAP ==
141
142 Чтобы сервис Kubernetes kubelet работал правильно, вам нужно будет изменить SELinux по умолчанию на «разрешающий» или вы можете полностью отключить SELinux. В этом примере вы измените политику SELinux с «принудительной» на «разрешающую», что означает, что вы будете получать уведомления только от SELinux.
143
144 Выполните следующую команду, чтобы изменить политику SELinux по умолчанию на «разрешительную». Затем проверьте и проверьте текущий статус политики SELinux. Вы должны увидеть, что SELinux все еще включен, но с политикой «разрешительной».
145
146 {{{sudo setenforce 0
147 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
148
149 sestatus}}}
150
151 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/3-setup-selinux.png]]
152
153 Затем Kubernetes потребовал, чтобы на всех серверах были включены модули ядра «overlay» и «br_netfilter». Это позволит iptbales видеть мостовой трафик. Также вам нужно будет включить переадресацию портов и отключить SWAP.
154
155 Запустите следующую команду, чтобы включить модули ядра \overlay\ и \br_netfilter\.
156
157 {{{sudo modprobe overlay
158 sudo modprobe br_netfilter}}}
159
160 Чтобы сделать его постоянным, создайте файл конфигурации в \///etc/modules-load.d/k8s.conf//\. Это позволит системам Linux включать модули ядра во время загрузки системы.
161
162 {{{cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
163 overlay
164 br_netfilter
165 EOF}}}
166
167 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/4-enable-kernel-modules.png]]
168
169 Затем создайте необходимые параметры systemctl с помощью следующей команды.
170
171 {{{cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
172 net.bridge.bridge-nf-call-iptables  = 1
173 net.bridge.bridge-nf-call-ip6tables = 1
174 net.ipv4.ip_forward                 = 1
175 EOF}}}
176
177 Чтобы применить новую конфигурацию sysctl без перезагрузки, используйте следующую команду. Вы должны получить список параметров sysctl по умолчанию в вашей системе и убедиться, что вы получили параметры sysctl, которые вы только что добавили в файл \//k8s.conf//\.
178
179 {{{sudo sysctl --system}}}
180
181 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/5-setup-sysctl-params.png]]
182
183 Чтобы отключить SWAP, вам нужно будет прокомментировать конфигурацию SWAP в файле \///etc/fstab//\. Это можно сделать с помощью одной команды через sed (редактор потока) или вручную отредактировав файл ///etc/fstab//.
184
185 {{{sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab}}}
186
187 или
188
189 {{{sudo nano /etc/fstab}}}
190
191 Теперь отключите SWAP в текущем сеансе с помощью приведенной ниже команды. Затем убедитесь, что SWAP отключен с помощью команды \//free -//m\. Вы должны увидеть, что SWAP имеет значения «0», что означает, что теперь он отключен.
192
193 {{{sudo swapoff -a
194 free -m}}}
195
196 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/6-disable-swap.png]]
197
198 == Установка среды выполнения контейнера: Containerd ==
199
200 Чтобы настроить кластер Kubernetes, необходимо установить среду выполнения контейнера на всех серверах, чтобы могли работать поды. Для развертываний Kubernetes можно использовать несколько сред выполнения контейнеров, таких как containerd, CRI-O, Mirantis Container Runtime и Docker Engine (через cri-dockerd).
201
202 В этом примере мы будем использовать «containerd» в качестве контейнера для нашего развертывания Kubernetes. Итак, вы установите containerd на все узлы Kubernetes. И есть несколько способов установить containerd, самый простой из них — использовать готовые бинарные пакеты, предоставленные репозиторием Docker.
203
204 Прежде чем добавить репозиторий, запустите приведенную ниже команду DNF, чтобы установить дополнительные инструменты \//dnf-util//s\.
205
206 {{{sudo dnf install dnf-utils}}}
207
208 Теперь выполните следующую команду, чтобы добавить репозиторий Docker для систем на базе CentOS.
209
210 {{{sudo yum-config-manager \
211     --add-repo \
212     https://download.docker.com/linux/centos/docker-ce.repo}}}
213
214 Выполните следующую команду, чтобы проверить репозитории в ваших системах Rocky Linux. Затем создайте новый кеш метаданных. Вы увидите, что репозиторий Docker добавлен в Rocky Linux.
215
216 {{{sudo dnf repolist
217 sudo dnf makecache}}}
218
219 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/7-add-docker-repo-containerd.png]]
220
221 Затем установите пакет containerd с помощью приведенной ниже команды DNF. Введите Y, чтобы подтвердить установку, и нажмите ENTER, и установка начнется. Когда вас попросят импортировать ключ Docker GPG, введите y, чтобы добавить.
222
223 {{{sudo dnf install containerd.io}}}
224
225 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/8-install-containerd.png]]
226
227 После завершения установки выполните следующую команду, чтобы создать резервную копию конфигурации containerd по умолчанию и создать новый файл конфигурации containerd.
228
229 {{{sudo mv /etc/containerd/config.toml /etc/containerd/config.toml.orig
230 sudo containerd config default > /etc/containerd/config.toml}}}
231
232 Теперь измените файл конфигурации containerd \///etc/containerd/config.toml//\, используя следующую команду.
233
234 {{{sudo nano /etc/containerd/config.toml}}}
235
236 Измените значение драйвера cgroup \SystemdCgroup=false\ на \SystemdCgroup=true\. Это включит драйвер systemd cgroup для среды выполнения контейнера containerd.
237
238 {{{[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
239   ...
240   [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
241     SystemdCgroup = true}}}
242
243 Когда вы закончите, сохраните и закройте файл.
244
245 Затем выполните следующую команду systemctl, чтобы запустить и включить службу containerd. Это добавит службу containerd для автоматического запуска при загрузке системы.
246
247 {{{sudo systemctl enable --now containerd}}}
248
249 Наконец, проверьте и подтвердите службу containerd, используя приведенную ниже команду. Вы должны увидеть, что containerd включен и будет запускаться автоматически при загрузке системы. И текущий статус службы containerd работает.
250
251 {{{sudo systemctl is-enabled containerd
252 sudo systemctl status containerd}}}
253
254 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/9-start-enable-containerd.png]]
255
256 == Установка пакетов Kubernetes ==
257
258 Вы установили среду выполнения контейнера containerd. Теперь вы установите пакеты Kubernetes на все свои системы Rocky Linux. Сюда входят kubeadm для начальной загрузки кластера Kubernetes, kubelet — основной компонент кластера Kubernetes и kubectl — утилита командной строки для управления кластером Kubernetes.
259
260 В этом примере мы будем устанавливать пакеты Kubernetes, используя репозиторий, предоставленный Kubernetes. Итак, вы добавите репозиторий Kubernetes во все свои системы Rocky Linux.
261
262 Выполните следующую команду, чтобы добавить репозиторий Kubernetes для операционных систем на базе RHEL/CentOS.
263
264 {{{cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
265 [kubernetes]
266 name=Kubernetes
267 baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
268 enabled=1
269 gpgcheck=1
270 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
271 exclude=kubelet kubeadm kubectl
272 EOF}}}
273
274 Теперь проверьте список репозиториев и сгенерируйте новый кеш метаданных с помощью приведенной ниже команды dnf. И вы должны увидеть, что репозиторий Kubernetes добавлен в системы Rocky Linux.
275
276 {{{sudo dnf repolist
277 sudo dnf makecache}}}
278
279 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/10-add-kubernetes-repository.png]]
280
281 Затем установите пакеты Kubernetes с помощью следующей команды dnf. Введите Y, чтобы подтвердить установку, и нажмите ENTER, чтобы продолжить, и установка начнется.
282
283 {{{sudo dnf install kubelet kubeadm kubectl --disableexcludes=kubernetes}}}
284
285 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/11-install-kubernetes-packages.png]]
286
287 После завершения установки выполните следующую команду systemctl, чтобы запустить и включить службу kubelet. Затем проверьте службу kubelet и убедитесь, что она включена и работает на всех узлах.
288
289 Эта служба является основной службой Kubernetes, которая будет ожидать любых событий при инициализации кластера или присоединении узла к кластеру.
290
291 {{{sudo systemctl enable --now kubelet}}}
292
293 == Установка плагина CNI: фланель ==
294
295 Kubernetes поддерживает различные подключаемые модули Container Network, такие как AWS VPC для Kubernetes, Azure CNI, Cilium, Calico, Flannel и многие другие. В этом примере мы будем использовать Flannel в качестве подключаемого модуля CNI для развертывания Kubernetes. А для этого вам нужно было установить бинарный файл Flannel на узлы Kubernetes.
296
297 Выполните приведенную ниже команду, чтобы создать новый каталог \///opt/bin//\. Затем загрузите в него бинарный файл Flannel.
298
299 {{{mkdir -p /opt/bin/
300 sudo curl -fsSLo /opt/bin/flanneld https://github.com/flannel-io/flannel/releases/download/v0.19.0/flanneld-amd64}}}
301
302 Теперь сделайте двоичный файл flanneld исполняемым, изменив разрешение файла с помощью приведенной ниже команды. Этот двоичный файл flanneld будет выполняться автоматически, когда вы настраиваете сетевое дополнение Pod.
303
304 {{{sudo chmod +x /opt/bin/flanneld}}}
305
306 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/12-download-flanneld.png]]
307
308 == Инициализация плоскости управления Kubernetes ==
309
310 Вы выполнили все зависимости и требования для развертывания кластера Kubernetes. Теперь вы запустите кластер Kubernetes, впервые инициализировав узел Control Plane. В этом примере Kubernetes Control Plane будет установлен на сервере «kubem-master» с IP-адресом «192.168.5.10».
311
312 Перед инициализацией узла Control Plane выполните следующую команду, чтобы проверить, включены ли модули ядра \//br_netfilter//\. Если вы получаете вывод команды, это означает, что модуль \//br_netfilter//\ включен.
313
314 {{{lsmod | grep br_netfilter}}}
315
316 Затем выполните следующую команду, чтобы загрузить образы, необходимые для кластера Kubernetes. Эта команда загрузит все образы контейнеров, необходимые для создания кластера Kubernetes, такие как coredns, сервер kube-api и т. д., kube-controller, kube-proxy и образ контейнера pause.
317
318 {{{sudo kubeadm config images pull}}}
319
320 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/13-check-kernel-modules-download-images.png]]
321
322 После завершения загрузки выполните следующую команду \//kubeadm init//\, чтобы инициализировать кластер Kubernetes на сервере \kube-master\. Этот узел «kube-master» будет автоматически выбран в качестве плоскости управления Kubernetes, потому что это первая инициализация кластера.
323
324
325 * Кроме того, в этом примере мы указываем в качестве сети для модулей значение \10.244.0.0/16\, которое является диапазоном сети по умолчанию для подключаемого модуля Flannel CNI.
326 * ~-~-apiserver-advertise-address\ определяет, на каком IP-адресе будет работать сервер API Kubernetes. В этом примере используется внутренний IP-адрес 192.168.5.10\.
327 * Для параметра \~-~-cri-socket\ здесь мы указываем сокет CRI для сокета среды выполнения контейнера, доступного в \/run/containerd/containerd.sock\. Если вы используете другую среду выполнения контейнера, вы должны изменить путь к файлу сокета или можете просто удалить эту опцию \~-~-cri-socket\, потому что kubeadm автоматически обнаружит сокет среды выполнения контейнера.
328
329
330 {{{sudo kubeadm init --pod-network-cidr=10.244.0.0/16 \
331 --apiserver-advertise-address=192.168.5.10 \
332 --cri-socket=unix:///run/containerd/containerd.sock}}}
333
334 Когда инициализация завершена, вы можете увидеть сообщение, такое как «Ваша плоскость управления Kubernetes успешно инициализирована!» с некоторыми важными выходными сообщениями для настройки учетных данных Kubernetes и развертывания сетевой надстройки Pod, как добавить рабочий узел в свой кластер Kubernetes.
335
336 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/14-initilizing-control-plane-kubernetes.png]]
337
338 Прежде чем вы начнете использовать кластер Kubernetes, вам необходимо настроить учетные данные Kubernetes. Выполните следующую команду, чтобы настроить учетные данные Kubernetes.
339
340 {{{mkdir -p $HOME/.kube
341 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
342 sudo chown $(id -u):$(id -g) $HOME/.kube/config}}}
343
344 Теперь вы можете использовать команду \//kubectl//\ для взаимодействия с вашим кластером Kubernetes. Выполните следующую команду \//kubectl//\, чтобы проверить информацию о кластере Kubernetes. И вы должны увидеть плоскость управления Kubernetes и работающие ядра.
345
346 {{{kubectl cluster-info}}}
347
348 Чтобы получить полную информацию о вашем Kubernetes, вы можете использовать опцию дампа — так что //\kubectl cluster-info dump//\.
349
350 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/15-setup-admin-credentials-and-check-cluster-info.png]]
351
352 После запуска плоскости управления Kubernetes выполните следующую команду, чтобы установить сетевой подключаемый модуль Flannel Pod. Эта команда автоматически запустит бинарный файл \flanneld\ и запустит некоторые фланелевые стручки.
353
354 {{{kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml}}}
355
356 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/16-deploy-flannel-network.png]]
357
358 Проверьте список запущенных модулей в Kubernetes с помощью следующей команды. если ваша установка Kubernetes прошла успешно, вы должны увидеть, что все основные модули для Kubernetes, включая модули Flannel, работают.
359
360 {{{kubectl get pods --all-namespaces}}}
361
362 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/17-check-pods-kubernetes.png]]
363
364 == Добавление рабочих узлов в Kubernetes ==
365
366 После инициализации плоскости управления Kubernetes на сервере «kube-master» вы добавите рабочие узлы «kube-worker1» и «kube-worker2» в кластер Kubernetes.
367
368 Перейдите на сервер \kube-worker1\ и выполните приведенную ниже команду \kubeadm join\, чтобы добавить \kube-worker1\ в кластер Kubernetes. У вас могут быть другие токен и ca-cert-hash, вы можете увидеть подробную информацию об этой информации в выходном сообщении при инициализации узла Control Plane.
369
370 {{{kubeadm join 192.168.5.10:6443 --token wlg23u.r5x2nxw2vdu95dvp \
371         --discovery-token-ca-cert-hash sha256:71fd28ac2b8108a3d493648a9c702acd2e39a8a0e7efc07326d7b0384c929066}}}
372
373 В следующем выводе вы можете видеть, что сервер \kube-worker1\ присоединен к кластеру Kubernetes.
374
375 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/18-add-kube-worker1-to-cluster.png]]
376
377 Затем перейдите на сервер \kube-worker2\ и запустите команду \//kubeadm join//\, чтобы добавить \//kube-worker2//\ в Kubernetes. Кластер.
378
379 {{{kubeadm join 192.168.5.10:6443 --token wlg23u.r5x2nxw2vdu95dvp \
380         --discovery-token-ca-cert-hash sha256:71fd28ac2b8108a3d493648a9c702acd2e39a8a0e7efc07326d7b0384c929066}}}
381
382 Вы увидите такое же выходное сообщение, когда процесс завершится.
383
384 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/19-add-kube-worker2-to-cluster.png]]
385
386 Теперь вернитесь к серверу плоскости управления kube-master\ и выполните следующую команду, чтобы проверить все запущенные модули для всех пространств имен в кластере Kubernetes. Вы должны увидеть дополнительные модули для каждого компонента Kubernetes.
387
388 {{{kubectl get pods --all-namespaces}}}
389
390 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/20-check-all-pods.png]]
391
392 Наконец, проверьте и подтвердите все доступные узлы в кластере Kubernetes с помощью приведенной ниже команды kubectl. Вы должны увидеть, что сервер kube-master работает в качестве плоскости управления Kubernetes, а \kube-worker1\ и\серверы kube-worker2\» работают как рабочий узел.
393
394 {{{kubectl get nodes -o wide}}}
395
396 [[image:https://ru.linux-console.net/common-images/how-to-setup-kubernetes-cluster-with-kubeadm-on-rocky-linux/21-check-nodes-kubernetes.png]]
397
398 == Заключение ==
399
400 В рамках этого руководства вы завершили развертывание кластера Kubernetes с тремя серверами Rocky Linux. Кластер Kubernetes работает с одной плоскостью управления и двумя рабочими узлами. Он работает с containerd в качестве среды выполнения контейнера для вашего кластера Kubernetes и с сетевым плагином Flannel для сетевого подключения модулей в вашем кластере. Вы полностью настроили кластер Kubernetes, вы можете начать развертывание своих приложений в кластере Kubernetes или попробовать установить панель управления Kubernetes, чтобы узнать больше о вашей среде Kubernetes.