Windows 和 Linux 共存于 Kubernetes 集群中

问题描述 投票:0回答:3

我正在查看 kubernetes 文档,它似乎具有 Windows 兼容性,但是我没有完全清楚 Linux 和 Windows 是否可以共存(我的意思是,在不同的虚拟机中但在同一个集群中)。

我想知道

gcloud
azure
aws
是否支持这种情况。还有使其发挥作用的过程或示例。例如如何在正确的虚拟机(Windows 或 Linux)中创建 pod,以及水平和集群自动缩放器如何工作。

用例是 2 个 API,一个在 Windows(.NET Framework)中运行,另一个在 Linux(python/c++)中运行,我希望能够使用 kubernetes 重新路由它们、能够相互调用、扩展它们等等。请注意,

.NET Framework
应用程序具有无法传递给
.NET Core
的依赖项(主要用于数学优化),这意味着我无法将应用程序转换为基于linux的

linux windows amazon-web-services kubernetes gcloud
3个回答
8
投票

有一些历史,容器是 Linux 的东西,所以 Windows 上本身没有容器。 Docker 创建了适用于 Windows 的 Docker,但本质上它的作用是运行 Hyper-V Linux VM(以前是 VirtualBox)并在其中运行容器。从最新的 Docker 版本开始,微软在 Hyper-V 上添加了功能,允许以本机方式运行这些容器,从而可以轻松地在容器中运行 .NET 应用程序

K8s 是在 Golang 中实现的,因此通过使用 Golang 交叉编译器(或 Windows 上的本机)将主要组件(如

kubelet

kube-proxy
kubectl
)移植到 Windows 通常更容易

一个棘手的部分是网络,但看起来他们已经在

docs 中解决了这个问题

就主要提供商的公共云支持而言:

  • AWS

      Hypervisor:修改后的 Xen 或 KVM。没有嵌套虚拟化支持。
    • 虚拟机:Windows 虚拟机。无法利用具有嵌套虚拟化的 Hyper-V,但可以运行适用于 Windows 的 Docker。
    • 裸机:(截至撰写本文时为 i3.metal)。本地运行 Hyper-V 和适用于 Windows 的 Docker。
  • 天蓝色

      虚拟机管理程序:Hyper-V。支持某些实例类型的嵌套虚拟化。
    • VM:Windows VM,可以使用 Hyper-V 的嵌套虚拟化,并且可以运行 Docker for Windows。
    • ACS、AKS、ACE:应该能够利用具有嵌套虚拟化和某些本机情况的 Hyper-V。
  • GCP

      虚拟机管理程序:KVM。支持某些实例类型的嵌套虚拟化。
    • 虚拟机:Windows 虚拟机。可以运行具有嵌套虚拟化的 Hyper-V,并且可以运行适用于 Windows 的 Docker。
除此之外,我不知道还有什么(除了

docs中的内容)这个问题非常广泛。只需安装适用于 Windows 的 Docker,设置网络,使用 kubeadm

 加入集群,并使用 Pod 中的 
nodeSelector
 规范安排 Windows 工作负载,并确保使用 
beta.kubernetes.io/os=windows
 标记 Windows 节点

还有另一个关于使用 Windows 节点设置 Kubernetes 的好指南

这里


3
投票
是的,这应该是可能的。

由于所有部署都位于 docker 容器中,因此您可以在 Kubernetes 上运行任何操作系统(在 docker 容器中)。还有 Windows。

在同一集群上运行 Windows 和 Linux 容器不会给您带来任何问题。


0
投票
通过 Kubernetes 的最新更新,Windows 和 Linux 工作负载现在 100% 可以在 Kubernetes 集群中共存。必须满足以下先决条件:

A working Kubernetes cluster with at least one Linux control plane. Windows Server 2019 or newer is required to join as a node. kubelet and kube-proxy must be installed on Windows nodes. Windows nodes use containerd to run Windows containers.
更多详情请参考官方文档:

[Kubernetes Windows User Guide][1] [Kubernetes Windows Overview][1]
    
© www.soinside.com 2019 - 2024. All rights reserved.