Еще один способ добавления Windows узла в Kubernetes кластер

Windows Kubernetes join

Доброго времени суток, уважаемый читатель.

Для того, чтобы Windows узел мог нормально функционировать в Kubernetes кластере, нам надо каким-либо способом обеспечить работу на нем как минимум 3-х компонентов:

  1. kubelet
  2. kubeproxy
  3. flannel (или что-то другое, что обеспечивает работу сети)

Kubelet запускается в виде Windows-службы, тут всё просто и по сути ничем не отличается от того, как это происходит на Linux узлах. А вот с kubeproxy и flannel всё куда интереснее. Ранее я писал, как сделать так, чтобы они запускались в виде Windows-служб; но на Linux узлах эти 2 компонента запускаются с помощью DaemonSets.

И вот сегодня я расскажу, как реализовать подобное в Windows.

Я предполагаю, что flannel у вас работает в режиме overlay. Поэтому применяем 2 yaml файла:

curl -L https://github.com/kubernetes-sigs/sig-windows-tools/releases/latest/download/kube-proxy.yml | sed 's/VERSION/v1.19.0/g' | kubectl apply -f -
kubectl apply -f https://github.com/kubernetes-sigs/sig-windows-tools/releases/latest/download/flannel-overlay.yml

В результате у нас появятся в DaemonSets:

  1. kube-flannel-ds-windows-amd64
  2. kube-proxy-windows

Осталось настроить узел так, чтобы все это заработало. Устанавливаем wins, kubelet, kubeadm

curl.exe -LO https://github.com/kubernetes-sigs/sig-windows-tools/releases/latest/download/PrepareNode.ps1
.\PrepareNode.ps1 -KubernetesVersion v1.19.0

Запускам kubeadm для подключения к кластеру. Текст команды можно получить с помощью заклинания ниже, выполненного на master-узле кластера:

kubeadm token create --print-join-command

Через некоторое время на новом Windows узеле будут запущены 2 пода: flannel и kubeproxy.

Узел готов к работе. Всё!