【问题标题】:Setting up Kubernetes on NixOS在 NixOS 上设置 Kubernetes
【发布时间】:2018-10-02 11:21:33
【问题描述】:

在 NixOS 上,只需一行配置即可轻松设置 Kubernetes:

services.kubernetes.roles = ["master" "node"];

这会在本地系统上安装 master 和 node 组件,因此创建了一个不错的小型本地 kubernetes“集群”。

如果我想建立一个“真正的”集群,我需要将它安装在多台主机上,但我不确定连接它们的预期方式。

如果我只在一个主机上安装主组件,而在另一个节点上只安装节点组件,我如何告诉节点在哪里找到它的主组件?

configuration options 有不少,但我不知道如何正确使用它们。有人知道一些示例设置吗?

【问题讨论】:

    标签: kubernetes nixos


    【解决方案1】:

    查看Jaka Hudoklin/offlinehackerthe latter part 的 NixCon '15 在 GateHub 上关于 NixOS 上 Kubernetes 的演讲。它有一个示例配置,将 docker 配置为使用桥接接口。然后,您可以使用 openvswitch 将网络链接在一起。

    【讨论】:

    • 我知道那个演示文稿。但是,正如我上面写的那样,他在 same 主机上使用 master 和 node。问题是我如何在不同的主机上运行master和node。
    • 等一下,他使用 openvswitch 连接这些虚拟网络。这就是您需要配置网桥的原因。对不起,这怎么没有帮助?
    • 如何在不同的节点上做到这一点?
    • @RobertHensing 网络节点不是问题,而是如何将共享集群配置分发到所有节点。
    【解决方案2】:

    我目前正在使用 NixOS / NixOps 自动化 Kubernetes 部署。它与多个本地 VirtualBox 节点一起工作得很好。关于 AWS 集成,我仍然需要解决一些问题。然后我会尝试与其他云提供商集成。

    您可以查看此存储库:NixOps Kubernetes。不要犹豫,分叉并帮助我改进它。

    【讨论】:

    • 感谢分享。更详细的自述文件会有所帮助。告诉您您要实现的目标以及这些命令的用途。他们可能对你很清楚,但特别是对于不太深入 AWS 的人来说可能会有点困惑。 - 您可以在github.com/michas2/nix-qemu-kubeboot 找到我的存储库
    • 当然,我会改进文档。目前还处于非常早期的阶段。我只是想与你分享它,以防你尽快需要它。感谢您分享您的回购。对于动态扩展集群所需的内容,还有一些有趣的想法。我会在更新文档后立即通知您。谢谢。
    • 我想我了解您的大部分代码,但是您究竟如何将不同的节点连接到单个集群?在我的代码中,让工作人员与主人员对话以形成一个实际的 k8s 集群所需的最小更改是什么?
    • 有几件事帮助我理解了组成 Kubernetes 集群的所有组件。您可以查看 Kelsey Hightower 的存储库:github.com/kelseyhightower/kubernetes-the-hard-way。但是关于您的代码,可能缺少的是工作节点上的 etcd 客户端如何连接到主节点上的 etcd 服务器以更新集群的配置和拓扑。另一件事可能还需要证书,以便 Kubernetes 组件被授权相互通信。
    • nixos 代码看起来已经处理了大部分技术细节。 (毕竟你得到了一个完全配置的本地集群,只有一行。)感觉就像我只缺少另一个配置行来触发 nix-magic 以正确的方式连接事物。 (类似master=$ip 之类的东西。)
    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 2020-04-06
      • 2017-12-14
      • 2016-07-26
      • 2016-12-05
      • 2016-02-20
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      • 2016-10-07
      相关资源
      最近更新 更多