微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在本地自动化基础架构部署的好解决方案?

如何解决在本地自动化基础架构部署的好解决方案?

我最近阅读了更多关于基础设施即服务 (IaaS) 和平台即服务 (PaaS) 的内容,但遇到了一些问题。我发现当我们选择 PaaS 解决方案时,通常很容易创建基础架构,因为云提供商会为我们处理这些问题,我们甚至可以使用像 terraform 这样的基础架构即代码解决方案来自动化部署。

但如果我们使用 IaaS 解决方案,甚至是本地部署集群,我们就会失去 PaaS 似乎允许的很多自动化。所以我很好奇,有没有什么好的工具可以在不在云中的本地集群上自动化基础设施部署?

我能想到的最好的办法是运行一个本地 Kubernetes 集群,然后对每个基础设施组件进行 Dockerize,但这似乎很困难,因为集群中的每个节点都需要自己的特定配置文件

从我的基本谷歌搜索来看,似乎没有好的解决方案。

编辑:

我的初衷还不够清楚。我有两个问题要解决

  1. 如何在本地自动部署基础设施?例如,假设我想创建一个 Hadoop HDFS 集群。我需要将一个节点配置为具有可访问 IP 的名称节点,并将其他节点配置为知道名称节点 IP 的数据节点。目前,我必须通过登录每个节点,检查它的 IP,然后配置每个节点来手动执行此操作。我将如何自动执行此操作?如果我要使用 Kubernetes 方法,我如何指定一个正在运行的 pod 需要是 namenode,其他是 datanode?如何找到 Pod 的 IP 并让它们知道 namenode IP?
  2. 我遇到的下一个问题与第一个非常相似,但略有修改。我将如何将特定的配置文件部署到每个节点。例如在 Kafka 中,一个节点的配置文件需要 Zookeeper 节点的 IP,以及它应该侦听的 IP。对于集群中的每个节点,这可能不同。有没有什么好的方法可以使这些配置文件特定于 pod,这样我就不必进行 bash 文本处理来将正确的内容插入到每个 pod 的配置文件中?

解决方法

您可以将 Terraform 用于所有内部部署的基础设施。自动化,以及用于配置管理的 Ansible

假设您有三台 HPE 服务器,使用 Ansible 在其上安装 K8s 或 VMware,那么您可以将它们视为一个区域内的三个 Avvaliabilty zone,与 AWS 相同。从此您可以开始使用 Terraform 部署 dockerize 应用程序或掌舵图表。

总结:

  • Ansbile 用于安装和配置 K8s。
  • Terraform 用于配置 K8。
  • Helm 用于在 K8s 上安装应用。

在此之后,您将拥有一个基本的自动化内部部署基础设施。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。