Windows和Linux共同生活在Kubernetes集群中

sil*_*gon 10 linux windows amazon-web-services gcloud kubernetes

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

我想知道是否有任何支持这种情况gcloud,azureaws.而且,使其工作的程序或示例.就像如何在正确的VM(Windows或Linux)中创建pod以及水平和集群自动缩放器如何工作一样.

用例是2个API,一个在Windows(.NET Framework)中运行,另一个在linux(python/c ++)中运行,我希望能够重新路由它们,能够相互调用,扩展它们等等kubernetes.需要注意的是,.NET Framework应用程序具有无法传递的依赖关系(主要用于数学优化).NET Core,这意味着我无法将应用程序转换为基于linux的应用程序.

Ric*_*ico 7

有些历史记录,所以容器是Linux的东西,因此Windows上没有容器本身.Docker为Windows创建了Docker,但实际上它的作用是运行Hyper-V Linux VM(以前是VirtualBox),并在其内部运行容器.截至最新的Docker版本,微软已经在Hyper-V上添加了一些功能,允许运行这些容器,这样就可以轻松地在容器中运行.NET应用程序.

K8S在Golang实施所以这是通常更容易像端口主要成分kubelet,kube-proxy,kubectl到Windows,通过使用Golang交叉编译器(或原生在Windows上)

一个棘手的部分是网络,但看起来他们已经在文档中找到了它

至于主要提供商的公共云支持:

  • AWS

    • 管理程序:修改过的Xen或KVM.没有嵌套虚拟化支持.
    • VM:Windows VM.无法利用嵌套虚拟化的Hyper-V,但可以运行Docker for Windows.
    • 裸金属:(撰写本文时为i3metal).本机运行Hyper-V和Windows运行Docker.
  • 天蓝

    • 管理程序:Hyper-V.支持某些实例类型的嵌套虚拟化.
    • VM:Windows VM,可以使用Hyper-V的嵌套虚拟化,并可以运行Docker for Windows.
    • ACS,AKS,ACE:应该能够利用嵌套虚拟化的Hyper-V和本地的一些案例.
  • GCP

    • 管理程序:KVM.支持某些实例类型的嵌套虚拟化.
    • VM:Windows VM.可以使用嵌套虚拟化运行Hyper-V,并可以运行Docker for Windows.

除此之外,我不知道还有什么(除了文档中的内容)问题非常广泛.只需安装Docker for Windows,设置网络,加入群集kubeadm并使用nodeSelectorpod中的规范安排Windows工作负载,并确保使用您的Windows节点标记beta.kubernetes.io/os=windows

还有一个很好的指南,在这里设置Kubernetes与Windows节点