如何在本地 Kubernetes 上 运行 Windows 容器?

How to run Windows Containers on Local Kubernetes?

我有一个 .Net Framework 和 .NetCore 容器,我想 运行 它们在 Kubernetes 中。我安装了 Docker Desktop for Windows 和 Kubernetes。我如何在 Kubernetes 中 运行 这些 Windows 容器? This 文档详细说明了如何在 Kubernetes 上创建 Windows 节点,但是非常混乱。因为我在 windows 机器上,我在那里看到基于 linux 的命令(并且没有提到 OS 你需要 运行 所有这些)。我在 Windows 10 Pro 机器上。有没有办法在 Kubernetes 上 运行 这些容器?

当我尝试使用 Windows 个容器创建 Pod 时,它失败并显示以下错误消息 "Failed to pull image 'imagename'; rpc error: code = Unknown desc = image operating system 'windows' cannot be used on this platform"

欢迎访问 Whosebug Srinath

据我所知,您目前无法在本地版本的 Kubernetes 上 运行 Windows 容器。当您在 Docker 桌面中为 Windows 安装启用 Kubernetes 选项时,Kubernetes 集群只是 运行 在 Linux VM 中(有自己的 Docker 运行仅 Linux 个容器的时间)在 Hyper-V 管理程序上。

您的另一个解决方案是使用 Kubernetes 的托管版本,其中包含来自任何流行云提供商的 Windows 个节点。我认为相对容易上手的是 Azure(如果您没有 Azure 订阅,请创建一个 free 试用帐户,有效期为 12 个月)。

我建议您使用旧方法 运行 Azure 上的 Kubernetes,一种称为 Azure 容器服务又名 ACS 的服务,出于一个原因,我已经验证它可以很好地与 Windows 容器,特别是用于测试目的(我无法用它的后继者实现相同的效果,称为 AKS):

运行 在 Azure Cloud Shell 中执行命令,您的集群将在几分钟内准备就绪。

az group create --name azEvalRG --location eastus
az acs create -g azEvalRG -n k8s-based-win -d k8s-based-win --windows --agent-count 1 -u azureuser --admin-password 'YourSecretPwd1234$' -t kubernetes --location eastus