在Windows Server2019快速搭建HPC环境
一个小 Handbook,避免每次找文档。教你如何从一台全新的只装有远程桌面的 windows server 开始,快速搭建 k8s windows node。
文章还没写完,研究的时候出了问题。。。请不要浏览安装containerD后的内容。
安装 SSH Server
当启动了一台全新的 windows server,第一件事是安装 SSH Server
https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell
1 |
|
好了,现在可以用 ssh 连接了。使用本地 SSH 工具登陆成功后,记得退出远程桌面,以免影响后面的脚本执行。
安装 containerd
Microsoft 官方文档两条命令(一条是下载脚本,一条是执行)安装完基于进程隔离的 containerd 和 cni:https://learn.microsoft.com/en-us/virtualization/windowscontainers/quick-start/set-up-environment?tabs=containerd
1 |
|
安装的最后一步会重启电脑,重启后,使用 ssh 连接,执行 ctr version
,如果能看到版本号,说明安装成功。部分设备自动重启后执行不了此命令,很奇怪,但是经过测试,再执行一下.\install-containerd-runtime.ps1
就好了
下面拉个镜像试试:
后面的 2019 根据自己的主机版本决定,如果你是 windows server2019,就不要妄想能拉 2022 的镜像了
1 |
|
不出意外的话不会出意外,顺利拉取镜像。
安装 k8s node 必备组件
安装 kubectl
https://kubernetes.io/docs/tasks/tools/install-kubectl-windows/
这里的版本请对齐 master,否则可能会出现版本不匹配的问题。
1 |
|
由于这个可执行程序需要放到 PATH 下,我懒的去找 PATH,就直接放到了 C:\Program Files\containerd\bin 下,这就是安装 containerd 的脚本默认的安装目录,已经被加入了 PATH。
测试一下:
1 |
|
安装 kubelet 和 kubeadm
k8s 官方文档并没有给出 windows 的安装方法,不过看看 kubelet 的下载地址,推倒一下:
1 |
|
同样是下载到 C:\Program Files\containerd\bin 下。
目前出现的问题
windows 成功加入 master 节点,flannel 和 kubeproxy 的 windows sig 版本成功调度到 windows node 上,似乎 kubelet 有一点问题,容器陷入 CrashLoop ,目前还在研究中。。。
windows 的 containerd 需要修改沙箱 https://github.com/kubernetes-sigs/sig-windows-tools/issues/76
windows 官方 containerd 安装脚本 https://github.com/microsoft/Windows-Containers/blob/Main/helpful_tools/Install-ContainerdRuntime/install-containerd-runtime.ps1
k8s sig windows 配置一把梭脚本 https://github.com/kubernetes-sigs/sig-windows-tools
相同报错 Issue,但解决方案不适用 https://github.com/kubernetes-sigs/sig-windows-tools/issues/337
k8s Windows Node Guide https://kubernetes.io/docs/concepts/windows/intro/#kubelet-compatibility
在旧版本 k8s 上需要特殊配 coredns 仓库地址 https://groups.google.com/a/kubernetes.io/g/dev/c/DYZYNQ_A6_c/m/oD9_Q8Q9AAAJ?pli=1
安装指定版本 kube* https://blog.csdn.net/roxxo/article/details/103146865