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 | 配置 |
|---|---|---|---|
| master | 192.0.1.2 | 42.192.0.1 | 2c4g |
| node1 | 192.0.2.2 | 42.192.0.2 | 1c2g |
| node2 | 192.0.3.2 | 42.192.0.3 | 1c2g |
| node3 | 192.0.4.2 | 42.192.0.4 | 1c2g |
腾讯云链接
阿里云链接
由于机器都是活动淘来的,账号都不同,很难打通内网(如果你多台机器内网可以互通可以跳过此步骤)。
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.sh2.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-token2.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 Ready248d 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的朋友可以参考此课程



