【问题标题】:How to run Windows Containers on Local Kubernetes?如何在本地 Kubernetes 上运行 Windows 容器?
【发布时间】:2019-10-03 01:54:38
【问题描述】:

我有一个 .Net Framework 和 .NetCore 容器,我想在 Kubernetes 中运行它们。我安装了 Docker Desktop for Windows 和 Kubernetes。如何在 Kubernetes 中运行这些 Windows 容器? This 文档说明了如何在 Kubernetes 上创建一个 Windows 节点,但是很混乱。当我在 Windows 机器上时,我在那里看到了基于 linux 的命令(并且没有提到运行所有这些命令需要什么操作系统)。我在 Windows 10 Pro 机器上。有没有办法在 Kubernetes 上运行这些容器?

当我尝试使用 Windows 容器创建 Pod 时,它失败并显示以下错误消息“无法提取映像 'imagename'; rpc 错误:代码 = 未知 desc = 映像操作系统 'windows' 无法在此平台上使用"

【问题讨论】:

    标签: windows docker kubernetes containers kubectl


    【解决方案1】:

    欢迎使用 StackOverflow Srinath

    据我所知,您目前无法在本地版本的 Kubernetes 上运行 Windows 容器。当您在 Docker Desktop for Windows 安装中启用 Kubernetes 选项时,Kubernetes 集群只是在 Hyper-V 虚拟机管理程序上的 Linux VM 内运行(具有自己的 Docker Runtime for Linux 容器)。

    您的另一个解决方案是使用托管版本的 Kubernetes,其中包含来自任何流行云提供商的 Windows 节点。我觉得比较容易入手的是Azure(如果没有Azure订阅,创建free试用账号,有效期12个月)。

    我建议您使用一种旧的方式在 Azure 上运行 Kubernetes,这是一项名为 Azure Container Service aka ACS 的服务,出于一个原因,我已经验证它可以很好地与 Windows Containers 配合使用,尤其是用于测试目的(我无法用它的继任者实现同样的目标,称为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
    

    【讨论】:

    • 感谢您的回复。我认为使用 ACS/AKS 可以运行 Windows 容器。但是,我想在本地 pc 上的 kubernetes 上运行我的 Windows 容器,因为这是在 Windows 10 机器上的 K8s 中运行 WIndows 容器的一种要求。检查this
    • 根据您的文章:“Windows Server 2019 是唯一支持的 Windows 操作系统,可在 Windows 上启用 Kubernetes 节点”。您的 Windows 10 Pro 操作系统不可能充当本地 Kubernetes 集群的工作器。如果没有支持,您可以使用:Windows Server 版本 1709 或更高版本,但 Windows 10 仍然不在列表中。作为一种补救措施,您仍然可以在 Windows 10 机器上构建和运行 Windows 容器,这里是容器版本兼容性列表:docs.microsoft.com/en-us/virtualization/windowscontainers/…
    猜你喜欢
    • 1970-01-01
    • 2015-10-30
    • 2021-06-26
    • 2018-03-10
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2018-01-04
    相关资源
    最近更新 更多