前言:
由于本人服务器众多,各种容器运行在不同的服务器中,且每增加一个服务器都要重新安装docker和配置反向代理,一旦一个容器挂掉后,需要找到容器所在的服务器排查问题,操作麻烦且繁杂,于是想到采用轻量级的 Kubernetes搭建一个高可用性的集群用来运行容器服务。
环境概况图:

环境配置:
服务器系统:debian12
Master服务器配置:2C2G
Node服务器配置:2H4G
NFS存储服务器
mysql版本:8.0
K3s版本:最新即可
详细配置环境查看:K3s系统需求
个人建议:
服务器最好选择不同厂家和区域的,防止被一波带走,服务器之间的延迟和带宽要优秀,不然容器服务体验会很糟糕。
Master服务器上的进程起来大约占用内存不到1G,所以2G内存的VPS差不多。
Agent(node)服务器最低推荐4G内存,Agent上k3s服务运行后大约会占用接近2G的内存,结合自己实际业务使用来决定自己所需大小。
数据库单独找一台服务器存放,可以定时备份,数据库主要是Master与其通讯。
NFS服务器和master于node节点一点要延迟低,否则体验会非常差;NFS存储大小更具自己的需求决定。
还想要高可用性?数据库和NFS的可靠性可自行查阅资料解决,mysql的主备、和磁盘整列都是不错的选择,这里只考虑在VPS的环境下。
服务安装:
master节点:
debian12 系统进入后先更新系统,下载必要的工具
#更新,安装curl、wegt
apt update -y && apt install curl wget -y安装K3s server:
# Master01 安装k3s 控制节点
curl -sfL https://get.k3s.io | sh -s - server \
--token=SECRET \
--datastore-endpoint="mysql://user:passwd@tcp(1.1.4.1:3306)/database"SECRET建议随机生成32位16进制字符串。
生成工具:Json.cn
后面数据库的连接方式根据自己的实际情况修改。
# Master02 安装k3s 控制节点
curl -sfL https://get.k3s.io | sh -s - server \
--token=SECRET \
--datastore-endpoint="mysql://user:passwd@tcp(1.1.4.1:3306)/database"配置和上面一样复制粘贴即可。
Node节点:
更新系统,下载必要的工具
#更新,安装curl、wegt
apt update -y && apt install curl wget -y安装K3s agent
#nide01安装agent
curl -sfL https://get.k3s.io | K3S_URL=https://k3s_api.domain.com:6443 K3S_TOKEN=xxxxx::server:xxxxxx sh -K3S_URL的地址位于Master上,也可以直接写成Master的IP如https://1.1.1.1:6443或者https://1.1.1.2:6443
这里使用域名是为了备份k3s_api.domain.com解析为1.1.1.1和1.1.1.2。以你的实际域名和master IP地址进行解析;
作用是为了防止master挂了后找另外的master。
K3S_TOKEN在master的任意一个节点上查看/var/lib/rancher/k3s/server/node-token文件即可获取
例如
#获取TOKEN
cat /var/lib/rancher/k3s/server/node-token
node02节点同样执行,安装K3s agent,保持与上面的参数一致即可
#nide02安装agent
curl -sfL https://get.k3s.io | K3S_URL=https://k3s_api.domain.com:6443 K3S_TOKEN=xxxxx::server:xxxxxx sh -最后在任意master上查看节点状态
#查看节点信息
kubectl get node -owide
待更新....
评论