This commit is contained in:
Sergei Erjemin 2025-01-09 17:54:00 +03:00
parent 21bf903d45
commit 8148cc2e65

View File

@ -1078,20 +1078,25 @@ nano ~/.config/kubeadm-config.yaml
kind: JoinConfiguration kind: JoinConfiguration
discovery: discovery:
bootstrapToken: bootstrapToken:
apiServerEndpoint: "192.168.1.XX2:6443" # Укажите IP и порт API-сервера (master-узла) apiServerEndpoint: "192.168.1.XX2:6443" # IP (или VIP) и порт API-сервера (master-узла)
token: "сюда-вставить-токен-который-получили-при-инициализации-кластера" token: "сюда-вставить-токен-который-получили-при-инициализации-кластера"
caCertHashes: caCertHashes:
- "sha256:сюда-вставить-хэш-сертификата-который-получили-при-инициализации-кластера" - "sha256:сюда-вставить-хэш-сертификата-который-получили-при-инициализации-кластера"
nodeRegistration: nodeRegistration:
criSocket: "unix:///var/run/cri-dockerd.sock" # Укажите путь к cri-dockerd сокету criSocket: "unix:///var/run/cri-dockerd.sock" # Путь к cri-dockerd сокету
``` ```
Токен и хэш сертификата для добавления узла в кластер был выведен в консоль после инициализации кластера. Узнать Токен и хэш сертификата для добавления узла в кластер был выведен в консоль после инициализации кластера. Создать
их можно на мастер-узле командой: и посмотреть токен (на самом деле всю команду инициализации) можно на мастер-узле командой:
```shell ```shell
kubeadm token create --print-join-command kubeadm token create --print-join-command
``` ```
Токен действует 24 часа после выпуска. Все действующие токены можно посмотреть командой:
```shell
kubeadm token list
```
Примечательно, что команда каждый раз генерирует новый токен (хеш сертификата остается неизменным). Токен используется Примечательно, что команда каждый раз генерирует новый токен (хеш сертификата остается неизменным). Токен используется
только для первоначального добавления узла в кластер и действует ограниченное время (24 часа). Поэтому, если узел только для первоначального добавления узла в кластер и действует ограниченное время (24 часа). Поэтому, если узел
не был добавлен в кластер в течение этого времени, необходимо получить новый токен. не был добавлен в кластер в течение этого времени, необходимо получить новый токен.
@ -1140,13 +1145,14 @@ E0104 18:14:56.016385 86048 memcache.go:265] couldn't get current server API g
The connection to the server localhost:8080 was refused - did you specify the right host or port? The connection to the server localhost:8080 was refused - did you specify the right host or port?
``` ```
Это происходит потому, что конфигурационный файл `kubectl` не был скопирован на узел. Сначала на новом, присоединенном Это происходит потому, что конфигурационный файл `kubectl` не был скопирован на второй узел.
узле, создадим каталог `.kube` в домашнем каталоге:
На новом, присоединенном узле, создадим каталог `.kube` в домашнем каталоге:
```shell ```shell
mkdir -p $HOME/.kube mkdir -p $HOME/.kube
``` ```
И на мастер-узле скопируем конфигурационный файл `kubectl` на присоединенный узел (не забываем заменить `[user]` на А на мастер-узле скопируем конфигурационный файл `kubectl` на присоединенный узел (не забываем заменить `[user]` на
имя пользователя): имя пользователя):
```shell ```shell
sudo scp /etc/kubernetes/admin.conf [user]@opi5plus-2:~/.kube/config sudo scp /etc/kubernetes/admin.conf [user]@opi5plus-2:~/.kube/config
@ -1289,4 +1295,11 @@ busybox-worker 1/1 Running 0 35s 172.16.74.7 opi5plus-2
(обратите внимание на IP-адреса подов из предыдущего вывода, у вас они могут отличаться): (обратите внимание на IP-адреса подов из предыдущего вывода, у вас они могут отличаться):
```shell ```shell
kubectl exec -it busybox-master -- ping -c 4 172.16.74.7 kubectl exec -it busybox-master -- ping -c 4 172.16.74.7
```
#### Превращаем воркер-узел в мастер-узел
Удаляем сертификаты на бывшем воркере.
```shell
sudo rm -rf /etc/kubernetes/pki/*
``` ```