【问题标题】:Running a K8S Deployment with pods scheduled in ARM-based and X68-based nodes在基于 ARM 和基于 X68 的节点中运行带有 pod 的 K8S 部署
【发布时间】:2019-09-03 17:14:31
【问题描述】:

我有一个树莓派集群(基于 ARM 的 CPU)和几个在基于 X86 的笔记本电脑上运行的虚拟机,我能够在我的树莓派集群和其他基于 X86 的虚拟机上建立一个 K8S 集群.

我想在这个集群中运行 K8S 部署,其中 pod 在 Raspberry pie 节点中运行基于 ARM 的 docker 映像,而其他 pod 在我的基于 X86 的虚拟机中运行基于 X86 的 docker 映像。

我想知道是否有任何简单的方法可以实现这一点。提前感谢您的帮助。

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您可以使用自动分配给它们的每个节点的选择器/亲和机制和beta.kubernetes.io/arch label

    您可以致电kubectl describe node $nodename 并检查该标签。在 X86 上它将是 beta.kubernetes.io/arch=amd64,在 ARM 上会有所不同。

    因此,对于 X86 有效负载,您可以添加节点选择器:

    nodeSelector:
        beta.kubernetes.io/arch: amd64
    

    然后 K8s 将仅在 X86 服务器上生成该有效负载。 您可以对 ARM 有效负载执行相同的操作。

    【讨论】:

    • 非常感谢您的回答,我的问题是是否可以在同一个部署清单中为每个节点架构指定单独的容器映像,我知道可以有两个不同的部署调度 pod在基于 arm 或基于 x86 的节点中,但我希望有一个部署清单来控制运行到不同 cpu 架构节点的 pod
    • Docker 支持开箱即用,如果你的镜像有你需要的架构构建。要了解如何自己构建这种图像,请尝试查看BuildX。但是,您不能按架构指定图像,它应该是相同的图像和标签,其中包含多个拱门的图像。
    猜你喜欢
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2021-12-26
    • 2022-01-17
    • 2015-09-23
    • 2020-05-07
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多