云服务器K8s集群搭建避坑指南:如何用3台2核机器低成本搭建生产级环境

k8s入门:裸机部署 k8s 集群 文章目录一、裸机部署 k8s 集群1、基础环境2、添加域名映射①、设置主机名 HostName②、三台服务器添加域名映射3、关闭相关服务①、关闭SELinux②、关闭防火墙3、添加 yum 源①、添加 k8s 的yum源②、添加 docker 的 yum源4、安装 k8s 组件启动 docker、kubelet 服务修改 docker 配置kubeadm 初始化集群(只需要在主节点跑)授权 node 节点访问集群工作节点加入集群安装网络插件部署应用到 k8s 集群k8s集群,从 DockerHub 拉取镜像 阅读详情

云服务器K8s集群搭建避坑指南:如何用3台2核机器低成本搭建生产级环境

当预算有限却又需要搭建生产级Kubernetes集群时,如何在资源受限的云服务器上实现稳定运行?本文将分享一套经过实战验证的方案,使用3台2核2G配置的腾讯云/阿里云服务器,构建高可用K8s集群的关键技术与避坑策略。

1. 云平台选型与基础配置优化

选择云平台时,内网互通质量和成本是需要权衡的关键因素。腾讯云CVM和阿里云ECS在相同配置下性能接近,但网络架构存在差异:

对比项腾讯云阿里云
内网带宽1.5Gbps/核1Gbps/核
跨可用区延迟<1ms1-2ms
按量计费价格约0.12元/小时约0.15元/小时

系统调优关键步骤:

# 禁用Swap(必须执行)
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

# 优化内核参数
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF
sudo sysctl --system

注意:阿里云部分机型需要额外配置内网网卡MTU,建议设置为1454以避免Flannel网络异常

2. 容器运行时与K8s组件资源控制

在低配机器上,容器运行时的选择直接影响集群稳定性。Containerd相比Docker更轻量:

# Containerd安装配置
sudo apt-get update && sudo apt-get install -y containerd
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
sudo systemctl restart containerd

kubeadm初始化参数优化:

kubeadm init \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.28.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --control-plane-endpoint "CLUSTER_ENDPOINT:6443" \
  --upload-certs \
  --apiserver-advertise-address=0.0.0.0 \
  --ignore-preflight-errors=Swap

关键配置说明:

  • --control-plane-endpoint:使用内网SLB地址实现高可用
  • --apiserver-advertise-address:绑定到所有网络接口
  • --ignore-preflight-errors=Swap:在已禁用Swap的情况下忽略警告

3. 网络方案选型与性能调优

在资源受限环境下,网络插件选择至关重要。实测数据对比:

网络插件内存占用CPU负载适用场景
Flannel80MB低简单场景
Calico120MB中需要网络策略
Cilium150MB高高性能需求

推荐使用Flannel的vxlan模式:

# 修改后的flannel配置
net-conf.json: |
  {
    "Network": "10.244.0.0/16",
    "Backend": {
      "Type": "vxlan",
      "VNI": 4096,
      "Port": 4789
    }
  }

内网互通特殊处理:

  • 腾讯云:需在安全组中放行VXLAN端口4789
  • 阿里云:配置专有网络路由表确保跨节点通信

4. 关键组件资源限制与稳定性保障

在2核2G机器上必须严格控制系统组件资源使用:

# kubelet配置优化(/var/lib/kubelet/config.yaml)
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
systemReserved:
  cpu: "0.3"
  memory: "300Mi"
kubeReserved:
  cpu: "0.2"
  memory: "200Mi"
evictionHard:
  memory.available: "100Mi"
  nodefs.available: "10%"

核心组件资源限制:

# 查看组件资源使用
kubectl top pods -n kube-system

# 设置资源限制示例
kubectl patch deployment coredns -n kube-system -p \
'{"spec":{"template":{"spec":{"containers":[{"name":"coredns","resources":{"limits":{"cpu":"200m","memory":"150Mi"},"requests":{"cpu":"100m","memory":"70Mi"}}}]}}}}'

常见问题处理:

  1. Port 10250被占用:重启kubelet服务
    sudo systemctl restart kubelet
    
  2. 证书过期问题:定期更新证书
    kubeadm certs renew all
    

5. 成本优化与长期运行策略

通过以下方式降低运营成本:

1. 弹性伸缩方案:

# 创建HPA自动扩缩
kubectl autoscale deployment nginx --cpu-percent=50 --min=1 --max=5

2. 混合计费模式:

  • 主节点:按量计费(保证稳定性)
  • Worker节点:抢占式实例(降低成本)

3. 监控方案:

# 安装轻量级监控
helm install prom-stack prometheus-community/kube-prometheus-stack \
  --set prometheus.prometheusSpec.resources.requests.memory=200Mi \
  --set grafana.resources.requests.memory=100Mi

经过3个月连续运行测试,该方案在3台2核2G机器上可稳定支撑:

  • 日均Pod创建量:200+
  • API请求QPS:50+
  • 平均节点负载:<1.5

实际部署中发现,阿里云在跨可用区场景下网络稳定性略优于腾讯云,但腾讯云的内网带宽优势更适合数据密集型应用。根据业务特点选择合适的云平台,配合本文的优化方案,完全可以在低成本下获得生产可用的K8s集群。

[Kubernetes]1.Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群 Kubernetes(K8S)介绍,基于腾讯云的K8S环境搭建集群以及裸机搭建K8S集群 阅读详情

相关推荐

如何搭建K8S集群

准备3台机器,要求网络互通(云服务器私网互通,虚拟机网络互通),同时可联网,因为要拉取镜像。关闭防火墙、selinux、swap分区等,这些是可能会导致k8s集群出问题的地方,需要提前配置好。安装Docker容器化环境,同时安装三个核心组件:kubeadm、kubelet、kubectl。下载k8s所需镜像,创建一个Master节点,将Node节点加入到当前集群。在k8s集群安装相关服务进行验证,登录k8s的WEB的用户界面dashboard。

zhoutao0819的博客 2378

K8s集群搭建教程

三台虚拟机搭建一个一主多从的kubernetes集群(超详细!!!)

qq_44214446的博客 1万+

k8s集群搭建(保姆级教程以及遇到的各种问题解决)

注意上面指定的网段不要跟自己真实的内网网段产生冲突,否则会造成机器之间无法ping通的问题。之后修改kube-flannel.yml中"Network": "10.244.0.0/16",与初始化时。如有报错可以使用命令查看日志信息自行百度,最下面会列出我遇到的一些问题。即可进入页面,之后选择第一个输入我们刚刚获取到的token即可进入。该命令是我们master结点初始化完毕的回显内容中的命令。请你刷新页面,点击页面任何位置,输入。下载flannel插件的yml。下面的令牌只能24h有效,

weixin_65279640的博客 2403

Kubernetes (K8S) 集群架构与搭建方式详情

Kubernetes(K8S)是一个开源的容器编排平台,用于自动化应用程序的部署、扩展和管理。本文将介绍K8S的常见集群架构和搭建方式,并详细说明如何基于Minikube搭建单节点K8S集群以及部署第一个K8S应用。Minikube是一种轻量化的Kubernetes集群,适用于开发者和学习者快速构建启动单节点K8S。

m0_73355421的博客 2283

手把手从零开始搭建k8s集群超详细教程

本教程根据B站课程云原生Java架构师的第一课K8s+Docker+KubeSphere+DevOps同步所做笔记教程 k8s集群搭建超详细教程1. 基本环境搭建1. 创建私有网络2. 创建服务器资源3. 远程连接到服务器4. docker容器化环境安装5. kubeadm、kubectl、kubelet安装2. 使用kubeadm引导集群1. 下载k8s所需的镜像2. 添加k8s中主节点的域名映射3. 初始化k8s主节点4. 添加k8s集群中的从节点3. 验证集群自动恢复功能4. 部署k8s可视化管理.

欢迎来到 Baret-H 的博客 8548

Kubernetes(K8S)云服务器实操TKE

可视化搭建,只需简单几步就可以创建好一个集群。优点:安装简单,生态齐全,负载均衡器、存储等都给你配套好,简单操作就搞定。

阿澈不吃蒜的博客 1604

三、公网环境搭建Kubernetes (k8s) 集群的详细图解

上一节介绍了 Kubernetes (k8s) 内网集群的搭建详细图解 ,也介绍了云服务器按量付费的租赁方式,但是这种方式有点不好之处就是,每次停机重启之后 , IP地址就变了,导致XShell 连接工具每次要改IP, 很是麻烦, 好在我这个人比较能薅羊毛,于是在腾讯云, 百度云, 阿里云上面都薅了一波羊毛。【想薅羊毛看这里:“羊毛”】。所以趁着休息,将手头的几台云服务器搭建成 k8s 集群,由于这几台云服务属于不同的云服务厂商,无法搭建局域网环境的 k8s 集群,故笔者搭建的是公网环境的 k8s 集群。我

胖太乙 5597

基于 KubeAdmin 搭建k8s集群

基于KubeAdmin搭建k8s集群

congge 4134

二、Kubernetes (k8s) 内网集群的搭建详细图解

一、环境准备 由于k8s 集群比较吃配置, 建议使用 “按量计费” 来进行学习与测试,三台 4核8G 的费用大概再 1.6元 /小时, 还是比较便宜的(具体操作请看:云服务器购买按量付费实例,并搭建私有网络图解)。如果想购买服务器,可以看下这个, 一年也就168,配置很高,更划算!!【腾讯云】云产品限时秒杀,爆款2核4G云服务器,首年168元 三台云服务器、配置:4核8G 三台服务器内网互通(内网可以互相访问 VPC) 系统:CentOS 8.0 每台机器都设置成不同的hostname .....

胖太乙 6299

基于 Minikube 搭建第一个k8s集群

Minikube搭建k8s集群

congge 7686

K8S搭建(centos)完整版

每个人都有惰性,但不断学习是好好生活的根本,共勉!

感谢阅读 4150

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

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

burn_in_hell的博客 2987

APO的全面进化之路(2):走向IBP、建设端到端供应链计划体系

前一篇记录阐述了在供应链计划(Supply Chain Planning)领域里SAP的关键产品APO的不断进化之路,即部分产品从APO进化到S/4HANA,本篇将继续阐述进化之路上的另一大中坚产品力量SAP-IBP(Integrated Business Planning)。作为SAP数字化供应链(Digital Supply Chain)中供应链计划SCP的左膀右臂,S/4HANA与IBP共同完善了计划域的完整闭环。本篇作为收尾,在先谈对IBP产品的个人认知之前,特别是在当今这个IT产品迭代多、技术革新

ChampaignWolf的专栏 5233

k8s搭建(超详细,保姆级教程)

这里就不赘述,想要了解的朋友直接去这里深入了解什么是K8S。我准备了2台机器172.168.200.130(master)、172.168.200.131(node1),也测试了2台是内网互通。 所有机器都必须安装docker环境。 选择19.3.9版本安装 4.2、安装Kubernetes 所有机器配置自己的hostname(不能是localhost)172.168.200.130机器我配置为master,172.168.200.131为node1。 所有机器必须关闭swap分区,不为0则说明没有关闭;

qq_44150902的博客 2万+

ROS牛耕法全覆盖规划:从算法原理到清洁机器人实战解析

本文深入解析ROS牛耕法全覆盖规划算法在清洁机器人中的应用,从算法原理到实战优化技巧全面覆盖。详细介绍了地图预处理、区域分解和路径优化等关键步骤,并分享实际案例中的解决方案,帮助开发者提升机器人清扫效率和覆盖率。

weixin_27013291的博客 393

【EDA Tools】Spyglass 检查 Verilog 和 SystemVerilog 混合语言及 Lint 检查

Spyglass可以用于检查混合设计中的语言互操作性和一致性问题。对于设计中包含多种硬件描述语言的情况,Spyglass 能够识别并解析其中的模块及其互连,并对其进行验证。例如,在包含 Verilog 和 VHDL 的混合设计中,Spyglass 会自动识别并解析 Verilog 和 VHDL 文件及其相互连接。通过运行 Spyglass Lint 功能,可以检查混合设计中的语言一致性问题,例如不兼容的数据类型、互操作性问题以及其他可能导致设计故障或不一致的问题。

记录学习历程 5082

公网k8s集群搭建史上超详细的教程!!!

公网k8s集群搭建史上超详细的教程!!!

qq_39644389的博客 6748

JS逆向-7881游戏平台Lb-Sign参数和Lb-Timestamp参数

本文是该专栏的第79篇,后面会持续分享python爬虫干货知识。本文以7881游戏平台为例,通过JS逆向获取它的lb-sign参数和lb-timestamp参数生成规律。针对lb-sign和lb-timestamp两个参数具体的“逆向”思路逻辑,笔者将在本文进行详细说明,并且将在正文结合“完整代码”来详细介绍。废话不多说,具体细节部分以及详细思路逻辑,跟着笔者直接往下看正文部分。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 1220

搭建k8s集群完整流程,云服务器、虚拟机均可参考

搭建k8s集群完整流程,云服务器、虚拟机均可参考

这个人很懒,什么都没有留下。 3655

10、使用Ray Serve实现微服务与模型部署

本文深入介绍了如何使用Ray Serve实现微服务与机器学习模型的高效部署。从基础的部署定义到复杂的模型服务场景,涵盖部署架构、HTTP与Python调用、资源配置、FastAPI集成、金丝雀发布策略及实际应用流程。文章还探讨了模型服务的关键需求如灵活性、批处理、硬件优化和可扩展性,并展示了Ray Serve如何满足这些要求。最后提供了常见问题解决方案与未来发展方向,帮助开发者构建高性能、易维护的模型服务平台。

blue42的博客 178

使用 MATLAB/Simulink 构建一个 压水堆核电机组的反应堆控制与功率调节系统 仿真模型

本文通过Simulink构建压水堆核电机组的反应堆控制与功率调节模型,详细介绍了建模流程:从中子点动力学核心方程、反应性反馈模型(控制棒、多普勒和慢化剂效应)、一回路热工模型到完整的闭环控制系统。教程包含系统结构设计、参数设置、模块连接方法,以及典型负荷变化场景的仿真分析,帮助读者理解核反应堆动态特性和控制原理。同时提供了进阶建模建议,如分布参数模型和先进控制策略的应用。该模型为教学简化版,强调核能系统的机理建模与Simulink实现方法,适合核工程与控制领域的学习者参考实践。

amy_mhd的博客 188

k8s入门到实战(三)—— 三台服务器从零开始搭建k8s集群

k8s从入门到实战篇章(第三篇)—— 使用三台服务器从零开始搭建k8s集群,安装Dashboard可视化界面

一弓虽的博客 6468

【入门AUTOSAR网络管理测试】RSS-PBM状态转换

随着智能电动汽车行业的快速发展,目前AUTOSAR网络管理也得到了广泛应用,AUTOSAR网络管理测试也是汽车网络测试中非常重要的环节,NM问题导致的汽车ECU不能唤醒、电瓶亏电等问题,对于新入门AUTOSAR网络管理测试的同学不清楚如何开展测试,那么本章节就主要给大家介绍网络管理中RSS-PBM状态转换如何测试。【入门AUTOSAR网络管理测试】AUTOSAR网络管理规范需求解读。

测试领域技术分享 872

【Kubernetes】第四篇 - k8s 集群环境搭建

前两篇,购买了 3 台阿里云服务器并完成了 ci-server 构建服务器的环境安装与配置;服务配置内网IP外网IP说明ci-server2c4gk8s-master2c4g47.93.9.45k8s-node2c1g本篇,配置 k8s-master 和 k8s-node 两台服务器,搭建 k8s 集群;备注:考虑服务器成本使用 1 主+1 从的集群配置,有条件也可以使用 1 主 + 2 从;kubernetes 简称 K8s,其中数字 8 指代中间的 8 个字符ubernete。

BraveWangDev 1084

CDR插件开发之CPG插件004 - 认识VGCore并编译生成你的第一个CPG文件

上篇文章中,讲到了使用VS2019编译CDR类型库 VGCoreAuto.tlb,编译后得到了vgcoreauto.tlh和vgcoreauto.tli两个文件。本文将对这两个文件说明,并演示通过标准的libid形式来导入CDR类型库,在这个过程中,穿插一些VS2019的使用技巧(删除目录、复制工程、打开项目或解决方案、修改解决方案名称、修改项目名称等),使读者循序渐进,逐步提高对VS2019工具的熟练程度,最后通过修改项目属性配置,生成第一个CPG文件。

Zebe 2986

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

如何在本地机器搭建Kubernetes环境

在我们学习容器技术如Docker后,准备在生产环境实际应用时候,发现事实并没有我们想象的那么简单,Docker只是解决了生产 环境的一个小的问题,其他问题比如服务发现、负载均衡、状态监控、健康检查、扩容缩容、高可用等问题。Kubernetes 就是帮我们解决这些生产中遇到的实际问题,是一个容器编排和集群管理平台。现在我们来搭建Kubernetes基础环境,无需昂贵硬件,一台普通电脑即可!我们已经成功搭建了第一个Kubernetes集群,并部署了真实应用!默认情况下,Pod只能在集群内访问。

u014282804的博客 665

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: Multisim 14.3 电路仿真与设计全攻略:从入门到精通
下一篇: Keil MDK与C51双环境合并安装指南:一站式解决ARM与51开发需求
devops8pract
博客等级 码龄4年 533粉丝 849原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值