从今天开始开一个新坑,叫做:
迷你服务器集群环境
一、为什么要搭建这样一套环境呢
这里的原因说来话长,但归结起来主要是这三点原因
- 希望通过这次搭建,学习最新的集群相关技术体系
- 希望能够将自己写的一些软件运行在这一套环境之上,以减少家里的服务器环境混乱程度
- 充分利用起来家里的各种闲置设备
因此这个系列的文章主要通过真实的搭建过程,来积累集群技术体系细节。
当然,在搭建的过程当中会随时因为各种问题,而导致策略发生变化。随之而来的相应的这个系列文章的内容也会更新。这个请大家时刻关注最新的内容更新~
那么,话不多说,我们现在开始!
二、技术体系目标
我们要搭建的“迷你服务器集群环境”主要是基于k8s来搭建,大概包括这些组件(随时更新):
- K8S集群
- 网络模块:bgp on calico / cilium
- 存储模块:ceph
- service mesh+ingress:istio
以及除了支持k8s集群外,同时支持异构集群环境:
- 独立组件、网络(在k8s集群之外)
- 云服务(与第三方云服务打通)
在网络层面,同时会涉及到:
- 网络功能分区:核心区、接入区、公网下沉区、管理区、家庭办公区等
CICD部分,准备采用:
- github.com
- jenkins
运维部分,则会使用
- promethus
- grafana
总的来说是一个涉及各种东西的复杂工程(感觉这个坑太大了)
三、设备资源准备
在搭建的开始,这里准备使用一台Xeon E3 1240L v3作为主力设备,来实现整个集群。
Xeon E3 1240L v3的配置是这样子的,其中加粗的部分做了升级:
CPU | Xeon E3 1240L v3(4核8线程) |
内存 | 32GB DDR4 ECC |
硬盘 | 8*3T RAID-Z2 |
网络 | 4口千兆 |
操作系统 | TrueNAS Scale |
子节点说明 | 使用虚拟机+bridge软交换机仿真真实集群环境 |
总的来说除了这台机器的CPU性能有点弱之外,其他的部分足以满足一个集群的搭建了。
在搭建的过程当中,不可避免出现额外的资源诉求。关于这部分,之后的文章中会陆续完善。
四、参考
由于整个系列主要围绕k8s展开,因此参考文件主要还是以k8s的官方文档为主:
https://kubernetes.io/docs/home/
不过,需要注意的是,由于默认的软件版本,如debian的版本,安装后就已经启用了某些配置或功能,因此在接下来的文章中会省略相关的步骤。如果其他软件环境下遇到问题,请严格按照官方文档来配置。