# Додавання робочих вузлів Windows

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->








  <div class="feature-state-notice feature-beta">
      <span class="feature-state-name">СТАН ФУНКЦІОНАЛУ:</span>
      <code>Kubernetes v1.18 [beta]</code>
    </div>
  



Ця сторінка пояснює, як додати робочі вузли Windows до кластера kubeadm.

## Перш ніж ви розпочнете

* Запущений екземпляр [Windows Server 2022](https://www.microsoft.com/cloud-platform/windows-server-pricing) (або новіший) з адміністративним доступом.
* Запущений кластер kubeadm, створений за допомогою `kubeadm init` та з дотриманням кроків з документа [Створення кластера з kubeadm](/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/).

<!-- steps -->

## Додавання робочих вузлів Windows {#adding-windows-worker-nodes}


<div class="alert alert-info" role="note"><h4 class="alert-heading">Примітка:</h4>Для полегшення додавання робочих вузлів Windows до кластера використовуються скрипти PowerShell з репозиторію <a href="https://sigs.k8s.io/sig-windows-tools">https://sigs.k8s.io/sig-windows-tools</a>.</div>


Виконайте наступні кроки для кожної машини:

1. Відкрийте сесію PowerShell на машині.
1. Переконайтеся, що ви є адміністратором або привілейованим користувачем.

Потім виконайте наведені нижче кроки.

### Встановлення containerd {#install-containerd}

<div class="alert alert-secondary callout third-party-content" role="note"><strong>Примітка:</strong>&puncsp;Цей розділ містить посилання на проєкти сторонніх розробників, які надають функціонал, необхідний для Kubernetes. Автори проєкту Kubernetes не несуть відповідальності за ці проєкти. Проєкти вказано в алфавітному порядку. Щоб додати проєкт до цього списку, ознайомтеся з <a href="/uk/docs/contribute/style/content-guide/#third-party-content">посібником з контенту</a> перед надсиланням змін. <a href="#third-party-content-disclaimer">Докладніше.</a></div>


Щоб встановити containerd, спочатку виконайте наступну команду:

  ```PowerShell
  curl.exe -LO https://raw.githubusercontent.com/kubernetes-sigs/sig-windows-tools/master/hostprocess/Install-Containerd.ps1
  ```

Потім виконайте наступну команду, але спочатку замініть `CONTAINERD_VERSION` на нещодавній реліз з [репозиторію containerd](https://github.com/containerd/containerd/releases). Версія не повинна містити префікс `v`. Наприклад, використовуйте `1.7.22` замість `v1.7.22`:

  ```PowerShell
  .\Install-Containerd.ps1 -ContainerDVersion CONTAINERD_VERSION
  ```

* Налаштуйте будь-які інші параметри для `Install-Containerd.ps1`, такі як `netAdapterName`, за необхідності.
* Встановіть `skipHypervisorSupportCheck`, якщо ваша машина не підтримує Hyper-V і не може розміщувати контейнери ізольовані Hyper-V.
* Якщо ви змінюєте необовʼязкові параметри `CNIBinPath` та/або `CNIConfigPath` у `Install-Containerd.ps1`, вам потрібно буде налаштувати встановлений втулок CNI Windows з відповідними значеннями.

### Встановлення kubeadm і kubelet {#install-kubeadm-and-kubelet}

Виконайте наступні команди для установки kubeadm і kubelet:

  ```PowerShell
  curl.exe -LO https://raw.githubusercontent.com/kubernetes-sigs/sig-windows-tools/master/hostprocess/PrepareNode.ps1
  .\PrepareNode.ps1 -KubernetesVersion v1.36.0
  ```

* Налаштуйте параметр `KubernetesVersion` у `PrepareNode.ps1` за необхідності.

### Запуск `kubeadm join` {#run-kubeadm-join}

Виконайте команду, з виводу `kubeadm init`. Наприклад:

  ```bash
  kubeadm join --token <token> <control-plane-host>:<control-plane-port> --discovery-token-ca-cert-hash sha256:<hash>
  ```

#### Додаткова інформація про kubeadm join {#additional-information-about-kubeadm-join}


<div class="alert alert-info" role="note"><h4 class="alert-heading">Примітка:</h4>Щоб вказати кортеж IPv6 для <code>&lt;control-plane-host&gt;:&lt;control-plane-port&gt;</code>, IPv6-адреса повинна бути взята у квадратні дужки, наприклад: <code>[2001:db8::101]:2073</code>.</div>


Якщо у вас немає токена, ви можете отримати його, виконавши наступну команду на вузлі панелі управління:

```bash
# Виконайте це на вузлі панелі управління
sudo kubeadm token list
```

Вивід буде подібний до цього:

```console
TOKEN                    TTL  EXPIRES              USAGES           DESCRIPTION            EXTRA GROUPS
8ewj1p.9r9hcjoqgajrj4gi  23h  2018-06-12T02:51:28Z authentication,  The default bootstrap  system:
                                                   signing          token generated by     bootstrappers:
                                                                    'kubeadm init'.        kubeadm:
                                                                                           default-node-token
```

Стандартно, токени приєднання вузлів діють 24 години. Якщо ви приєднуєте вузол до кластера після того, як токен закінчився, ви можете створити новий токен, виконавши наступну команду на вузлі панелі управління:

```bash
# Виконайте це на вузлі панелі управління
sudo kubeadm token create
```

Вивід буде подібний до цього:

```console
5didvk.d09sbcov8ph2amjw
```

Якщо ви не маєте значення `--discovery-token-ca-cert-hash`, ви можете отримати його, виконавши наступні команди на вузлі панелі управління:

```bash
sudo cat /etc/kubernetes/pki/ca.crt | \
  openssl x509 -pubkey  | \
  openssl rsa -pubin -outform der 2>/dev/null | \
  openssl dgst -sha256 -hex | \
  sed 's/^.* //'
```

Вивід буде подібний до:

```console
8cb2de97839780a412b93877f8507ad6c94f73add17d5d7058e91741c9d5ec78
```

Вивід команди `kubeadm join` має виглядати приблизно так:

```console
[preflight] Running pre-flight checks

... (вивід журналу процесу приєднання) ...

Приєднання вузла завершено:
* Запит на підпис сертифіката надіслано до панелі управління та отримано відповідь.
* Kubelet поінформований про нові деталі захищеного зʼєднання.

Запустіть 'kubectl get nodes' на панелі управління, щоб побачити цей вузол.
```

Через кілька секунд ви повинні помітити цей вузол у виводі `kubectl get nodes`. (наприклад, виконайте `kubectl` на вузлі панелі управління).

### Налаштування мережі {#network-configuration}

Налаштування CNI в кластерах, що містять як Linux, так і вузли Windows, вимагає більше кроків, ніж просто запуск `kubectl apply` з файлом маніфесту. Крім того, втулок CNI, що працює на вузлах панелі управління, повинен бути підготовлений для підтримки втулка CNI, що працює на робочих вузлах Windows.

<div class="alert alert-secondary callout third-party-content" role="note"><strong>Примітка:</strong>&puncsp;Цей розділ містить посилання на проєкти сторонніх розробників, які надають функціонал, необхідний для Kubernetes. Автори проєкту Kubernetes не несуть відповідальності за ці проєкти. Проєкти вказано в алфавітному порядку. Щоб додати проєкт до цього списку, ознайомтеся з <a href="/uk/docs/contribute/style/content-guide/#third-party-content">посібником з контенту</a> перед надсиланням змін. <a href="#third-party-content-disclaimer">Докладніше.</a></div>


Зараз лише кілька втулків CNI підтримують Windows. Нижче наведені інструкції для їх налаштування:

* [Calico](https://docs.tigera.io/calico/latest/getting-started/kubernetes/windows-calico/)

### Встановлення kubectl для Windows (необовʼязково) {#install-kubectl}

Дивіться [Встановлення та налаштування kubectl у Windows](/docs/tasks/tools/install-kubectl-windows/).

## Що далі

* Дивіться, як [додати робочі вузли Linux](/docs/tasks/administer-cluster/kubeadm/adding-linux-nodes/).
