首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes工作节点必须使用完全相同的硬件和操作系统

Kubernetes工作节点必须使用完全相同的硬件和操作系统
EN

Stack Overflow用户
提问于 2020-04-27 05:17:31
回答 2查看 897关注 0票数 0

当我使用构建虚拟机管理程序(即VMWare、Hyper-V等)时群集,所有硬件和软件都必须完全相同。否则,如果其中一个节点出现故障,我会运行工作负载进入“冲突”的可能性(即,VM将不会运行,因为硬件或操作系统不同)。

如果您正在使用服务器机房中的各种(即传统)硬件(即不同的供应商Dell、HPE等、不同的CPU类型如AMD、Intel等、不同的BIOS版本、内存大小等)构建kubernetes群集。kubernetes worker节点是否必须使用完全相同的硬件才能在集群中正确平衡工作负载(即跨节点分配工作负载)。

我想从操作系统(即发行版/内核、库、模块和服务)开始,所有的东西都必须是相同的。我只是试图找到一个问题的一般答案,我还没有看到一个好的答案?

EN

回答 2

Stack Overflow用户

发布于 2020-04-27 18:38:46

一般来说,在Kubernetes中运行异构硬件是可以的。如果你所有的机器都是X86机器,那么没什么好担心的,因为你的docker镜像应该到处都可以运行。例如,在云中混合不同类型的spot实例是很常见的,这很好用。

然而,如果你混合了体系结构(如arm和x86)或操作系统(如windows和linux),通常情况下,添加一个标签来表明这一点是有意义的。这些是Kubernetes 1.15+中的典型标签:

代码语言:javascript
复制
$ kubectl describe node xxxxx
Name:               xxxxx
Roles:              node
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/instance-type=dell_xyz
                    beta.kubernetes.io/os=linux
[...]

然后,您可以在pod中的节点选择器中使用这些标签:

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: x86-pod
spec:
  containers:
    - name: x86-test
      image: "yourrepo.io/test_repo"
  nodeSelector:
    beta.kubernetes.io/arch: amd64
票数 3
EN

Stack Overflow用户

发布于 2020-04-27 05:53:55

从硬件和软件的角度来看,Kubernetes工作节点都可以是异构的。只有与kubernetes相关的服务(kubelet、容器运行时、CNI)必须与控制平面版本兼容。

你甚至可以运行混合的windows and linux nodes

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61448237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档