装在笔记本里的私有云环境:K8s 集群准备

本篇是系列中的第六篇内容,继续聊聊如何把一个简化过的私有云环境部署在笔记本里,以满足低成本、低功耗、低延时的实验环境。

在前几篇内容中,我们聊过了:虚拟化、监控、基础的存储、持续集成等内容,接下来的内容中,我们聊聊 K8s 集群的部署和配置相关的内容。

前置准备

因为一台笔记本的计算资源有限,想要顺滑的使用在一台设备中安装和使用 K8s 集群,其实还是有一些挑战的。为此我们需要做一些前置的准备,包括硬件资源分配、网络规划、软件准备。

除此之外,为了让程序运行的更加丝滑,在本文中,对于之前使用的虚拟化方案的资源分配进行了一些调整。

我们先来聊聊硬件方面的准备。

硬件准备

安装了 ESXi 的笔记本设备

在准备好设备之后,便需要选择合适自己的虚拟化方案,在之前的文章《AMD 5800u 笔记本折腾 Proxmox VE 7.0 虚拟化》、《NUC 折腾笔记 – 安装 ESXi 7》中,我们提到过 PVE 和 ESXi 两个常见的简单方案的安装部署。这里选择哪一种都不影响最终的结果,这里根据自己的实际需求选择即可。 在一些设备上 PVE 能够相对简单的提供显卡的“直通”,所以如果你需要折腾“硬件直通”,可以选择 PVE。因为之前构建过 ESXi 的镜像,也申请了免费的 License,所以这里我的选择是 ESXi。更多的细节可以参考《装在笔记本里的私有云环境:准备篇》中关于“虚拟化环境”的介绍和比较部分。

因为有虚拟交换机,实际传输效率并不低

在生产环境中,我们会使用不少公有云的 DNS 服务,不过既然我们做好了私有化的准备,不妨做的更彻底一些,让它能够“完全离线”,运行时不依赖外部在线服务。我这里的考虑是增加一台廉价的外部设备,比如使用一台物理路由器:将需要稳定提供服务的 DHCP 移动到外部。

重新划分的虚拟机资源
  • K8s 集群:Node x3 (2核心8GB内存120GB磁盘)
  • 外部存储:Storage x1 (4核心 4GB 内存 100GB 磁盘)
  • 通用服务:Base x1 (4核心 4GB 内存 300 GB 磁盘)

在分配磁盘的时候,K8s 集群和其他两台虚拟机选择不同的磁盘,可以避免磁盘 IO 用满导致的服务性能骤降、甚至引发不可用的问题

这里有一个小细节,我们在创建虚拟机的时候,尽量不要完全占满磁盘,预留一些空间除了有助于磁盘性能释放之外,还能避免虚拟机创建后,因为各种原因,磁盘用量超出我们预先设定时,影响虚拟化系统的整体可靠性。

当我们完成对主机完成虚拟化和虚拟机资源分配之后,来聊聊网络设计的细节。

网络设计

前文提到,我计划使用一台小路由器来“固定网络环境”。在实践的过程中需要配置两个部分的内容。

第一部分是针对 ESXi(设备主机)和各个虚拟机进行 IP 地址的分配。

允许外部访问路由管理后台

接着,我们来解决端口绑定,让我们能够通过在外部网络访问路由器的地址配合不同的端口,就能够实现管理路由器、ESXi、虚拟机,或者通过 Web 访问跑在虚拟机或者 K8s 集群上的服务的功能。

RedHat Ansible 项目官方网站

Ansible 是目前流行的 IT 自动化工具之一,也是久负盛名的开源软件之一,我们可以使用它来完成系统配置、软件部署、服务编排等任务,以及处理后续 CI/CD 中进行集成的相关任务。

本篇文章里,我们简单聊聊如何在初始化环节,通过它一步一步完成服务部署,避免在多台机器上重复执行命令,进行偷懒。

如何安装和简单配置 Ansible

最简单的使用场景下,我们只需要在控制端(比如堡垒机)完成 ansible 的安装即可。

因为我们选择了 Ubuntu 这种用户量非常大的 Linux 发行版,所以安装 ansible 的过程就特别简单,只需要一条命令:

在完成安装之后,我们先需要为 ansible 创建配置。首先要完成 ansible 的配置目录创建和目录的权限调整:

接着,执行命令,将主机名、分组、IP 信息写入配置(参考你的实际情况):

在执行完上面的命令之后,ansible 的基础配置就完成了。我们可以通过下面的命令来进行服务配置验证:

不出意外的话,将得到下面的日志输出:

当你想进行连通性测试,验证主机是否在线的时候,可以执行 。如果在上文中,你有正确配置密钥登录,那么将得到类似下面的日志结果:

如何使用 Ansible 批量执行命令

如果我们想让 K8s 分组的机器都执行系统软件包更新的命令,可以这样编写命令(直接使用上文中 ansible 配置中的小组名称即可):


    来源:soulteary

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月26日
下一篇 2022年10月26日

相关推荐