Доброго времени суток, уважаемый читатель.
Для того, чтобы Windows узел мог нормально функционировать в Kubernetes кластере, нам надо каким-либо способом обеспечить работу на нем как минимум 3-х компонентов:
kubelet
kubeproxy
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:
kube-flannel-ds-windows-amd64
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
.
Узел готов к работе. Всё!