栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

超低成本的k8s集群搭建教程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

超低成本的k8s集群搭建教程

k8s系列入门级教程—超低成本的k8s集群搭建教程

k8s可视化管理工具Rancher安装和使用—待填坑
使用rke安装企业级k8s集群—待填坑
prometheus+grafana监控搭建教程—待填坑
kubectl命令大全—待填坑
k8s efk日志系统搭建教程—待填坑
k8s使用nfs持久化存储—待填坑


文章目录

k8s系列入门级教程---超低成本的k8s集群搭建教程前言一、环境准备

1.机器配置2.内网互通

2.1.多台机器开通白名单2.2.iptable设置 二、安装步骤

1.发行版2.安装k3s

2.1.如何卸载2.2.设置数据库(可选)2.3.master节点安装2.4.其他worker节点安装 3.访问集群 三、结语


前言 k8s全称kubernetes,如果你已经点进来看了,说明这个名字你应该不陌生,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,推动微服务架构等热门技术的普及和落地,未来一定是k8s的天下。但是很多人由于公司没有使用,搭建成本过高自己也无从下手学习,现在教你一种超低成本的k8s集群搭建方式,理论上只需要一台2c4g+一台1c2g,让你跟上技术的脚步。
一、环境准备 1.机器配置

以下是我的云服务器配置,理论上可去掉node2和node3两个worker节点,都是活动时几十元每年淘来的。

hostname内网ip外网ip配置
master192.0.1.242.192.0.12c4g
node1192.0.2.242.192.0.21c2g
node2192.0.3.242.192.0.31c2g
node3192.0.4.242.192.0.41c2g

腾讯云链接
阿里云链接

2.内网互通

由于机器都是活动淘来的,账号都不同,很难打通内网(如果你多台机器内网可以互通可以跳过此步骤)。

2.1.多台机器开通白名单

每个节点在云服务器安全组开通其余节点外网ip的白名单。

2.2.iptable设置

iptable设置转发,互相将不互通的内网ip流量转发到对应外网ip,此方式节点的通信会受限于你的公网带宽所以只能学习使用,若要求较高可使用云服务商的其他互通方案,不过是要收费的。

#开启iptable forward
echo "1" > /proc/sys/net/ipv4/ip_forward

#设置转发规则(master到node1为例),其余同理
iptables -t nat -I PREROUTING 1 -d 192.0.2.2  -j DNAT --to-destination 42.192.0.2
iptables -t nat -I OUTPUT 1 -d 192.0.2.2  -j DNAT --to-destination 42.192.0.2
二、安装步骤 1.发行版

本次安装使用轻量级k3s,k3s是rancher公司开发维护的一套轻量级k8s发行版。发行版可以理解为centos 之于Linux。内核机制还是和k8s一样,但是剔除了很多外部依赖,同时改变了部署方式和运行方式,目的是轻量化 K8s,并将其应用于 IoT 设备(比如树莓派),所以1c2g的乞丐机上也不在话下。 简单来说,k3s 就是轻量版的 k8s实现,消耗资源极少,非常适合入门使用。 k3s官方文档中有详细介绍,本文下面大部分也是基于此文档进行部署等操作。

2.安装k3s 2.1.如何卸载

根据多年经验,一次安装成功的概率很低,如果安装失败了,可执行以下命令完全卸载并重新安装。

#在msater节点执行
/usr/local/bin/k3s-uninstall.sh

#在node节点执行
/usr/local/bin/k3s-agent-uninstall.sh
2.2.设置数据库(可选)

k8s的存储etcd在k3s中使用默认使用嵌入的轻量级sqlite替代,但是可以外接etcd存储,由于我们资源紧张,可以直接使用我们已有的数据库,当然也可以不设置使用默认sqlite。

#mysql为例
export K3S_DATASTORE_ENDPOINT="mysql://{{user}}:{{pass}}@tcp({{ip}}:{{port}})/{{db}}" 
2.3.master节点安装

登录到master那台机器

#官方一键安装脚本
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

#在master获取token(先保存到记事本,后面会用)
cat /var/lib/rancher/k3s/server/node-token
2.4.其他worker节点安装

登录到其他机器

#上步保存的token设置为本次安装的变量
export K3S_TOKEN={{上步token}}
#masterip就是你master节点的公网IP,当然因为设置了内网互通,内网ip也一样
export K3S_URL=https://{{masterip}}:6443
#官方一键安装脚本
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
3.访问集群
#设置环境变量KUBECONFIG的路径,默认路径为~/.kube/config
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
#如果不想修改默认值也可copy配置文件至默认路径
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config

#执行命令查看节点
kubectl get nodes

#返回以下信息表示安装成功
NAME             STATUS   ROLES                  AGE    VERSION
node2            Ready                     248d   v1.21.1+k3s1
master           Ready    control-plane,master   248d   v1.21.1+k3s1
node1            Ready                     248d   v1.21.1+k3s1
node3            Ready                     248d   v1.21.4+k3s1

三、结语

作为一名java程序员,近几年越来越意识到k8s的重要性,通过不断学习,本人也有幸在一次项目升级中为公司搭建了k8s集群,并迁移百万级用户的服务,现在想将我了解的东西分享出来,毕竟分享出来的东西才有价值。
因之前没有写博客的习惯,这是我尝试发布的第一篇文章,如果有什么意见或建议欢迎反馈。
如果发现我文中有什么问题,欢迎批评指正,我会及时更改。
如果各位在搭建的过程中遇到问题也可以评论区留言,我会尽量一一解答。
后续我会尽可能分享更多所学知识,下期再见。

对于短期内想要更系统深入的学习k8s的朋友可以参考此课程

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/733321.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号