Kubernetes集群部署实战:kubeadm与高可用配置指南
1. Kubernetes 集群部署概述在云原生技术栈中Kubernetes 已经成为容器编排的事实标准。而 kubeadm 作为官方推荐的集群部署工具以其简洁性和可靠性赢得了广大运维人员的青睐。我至今还记得第一次用 kubeadm 成功拉起集群时的兴奋感——那种原来如此的顿悟时刻。kubeadm 的设计哲学很明确提供最小化的最佳实践实现同时保持足够的灵活性。它不像某些全自动部署工具那样隐藏细节也不会像手动部署那样复杂。这种平衡使得 kubeadm 特别适合需要理解底层机制又追求效率的场景。2. 环境准备与系统配置2.1 硬件资源规划根据我的经验生产环境最少需要3个节点1 master 2 worker每个节点配置CPU至少2核4核更佳内存4GB起步master节点建议8GB磁盘40GB系统盘 单独的数据盘如果使用本地存储重要提示虽然kubeadm可以在单节点上运行但这样部署的集群无法体现Kubernetes的高可用特性仅适合开发测试。2.2 操作系统配置我通常在CentOS 7/8或Ubuntu 18.04/20.04上部署以下是必须的系统配置# 关闭swapKubernetes 1.8要求 sudo swapoff -a sudo sed -i / swap / s/^/#/ /etc/fstab # 设置防火墙规则如果启用 sudo firewall-cmd --permanent --add-port6443/tcp sudo firewall-cmd --permanent --add-port10250/tcp sudo firewall-cmd --reload # 加载br_netfilter模块 sudo modprobe br_netfilter echo br_netfilter | sudo tee /etc/modules-load.d/k8s.conf # 设置内核参数 cat EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 EOF sudo sysctl --system3. 组件安装与初始化3.1 容器运行时安装我推荐使用containerd作为运行时安装步骤如下# 安装containerd sudo yum install -y containerd.io sudo systemctl enable --now containerd # 配置cgroup驱动为systemd sudo containerd config default | sudo tee /etc/containerd/config.toml sudo sed -i s/SystemdCgroup false/SystemdCgroup true/ /etc/containerd/config.toml sudo systemctl restart containerd3.2 kubeadm/kubelet/kubectl安装配置Kubernetes仓库后安装三件套cat EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] nameKubernetes baseurlhttps://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 enabled1 gpgcheck1 repo_gpgcheck1 gpgkeyhttps://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF sudo yum install -y kubelet kubeadm kubectl --disableexcludeskubernetes sudo systemctl enable --now kubelet4. 集群初始化实战4.1 Master节点初始化这是我常用的初始化命令模板sudo kubeadm init \ --pod-network-cidr10.244.0.0/16 \ --apiserver-advertise-addressMASTER_IP \ --control-plane-endpointLOAD_BALANCER_DNS:6443 \ --upload-certs关键参数说明--pod-network-cidr需要与后续安装的CNI插件匹配--control-plane-endpoint高可用集群必填指向负载均衡器--upload-certs自动生成并上传证书用于其他控制平面节点加入初始化成功后务必保存最后输出的join命令它长这样kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4.2 Worker节点加入在worker节点上直接运行上述join命令即可。如果token过期默认24小时可以在master上重新生成kubeadm token create --print-join-command5. 网络插件安装我偏好使用Calico这是经过生产验证的选择kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml安装后检查网络组件状态watch kubectl get pods -n kube-system直到所有pod都显示Running状态通常需要2-3分钟。6. 高可用集群扩展6.1 添加控制平面节点使用初始化时输出的control-plane join命令kubeadm join LOAD_BALANCER_DNS:6443 --token xxx \ --discovery-token-ca-cert-hash sha256:xxx \ --control-plane --certificate-key xxx6.2 配置负载均衡我通常使用HAProxy配置TCP负载均衡关键配置片段frontend k8s-api bind *:6443 mode tcp default_backend k8s-api-nodes backend k8s-api-nodes mode tcp balance roundrobin server master1 192.168.1.101:6443 check server master2 192.168.1.102:6443 check server master3 192.168.1.103:6443 check7. 集群验证与问题排查7.1 基本健康检查# 查看节点状态 kubectl get nodes -o wide # 检查核心组件状态 kubectl get pods -n kube-system # 运行测试pod kubectl run -it --rm --imagebusybox:1.28 test-pod -- sh7.2 常见问题处理问题1kubelet不断重启检查日志journalctl -xeu kubelet常见原因容器运行时未正确配置防火墙阻止了端口问题2Pod网络不通诊断步骤# 检查Calico pod日志 kubectl logs -n kube-system calico-pod-name # 验证路由 ip route show8. 生产环境优化建议8.1 证书管理默认证书有效期1年建议提前续期kubeadm certs renew all8.2 集群升级策略我采用的滚动升级方法# 升级kubeadm yum upgrade -y kubeadm # 检查升级计划 kubeadm upgrade plan # 执行升级 kubeadm upgrade apply v1.23.5 # 升级节点组件 kubectl drain node --ignore-daemonsets yum upgrade -y kubelet kubectl systemctl restart kubelet kubectl uncordon node8.3 关键监控指标必须监控的核心指标包括API server响应延迟etcd写入延迟节点CPU/内存压力Pod启动时间我通常使用PrometheusGrafana组合来监控这些指标。

相关新闻

DeepL Pro免费使用技巧与优化策略

DeepL Pro免费使用技巧与优化策略

1. 深度解析DeepL Pro的免费使用策略作为一名长期关注机器翻译技术的语言工作者,我经常需要处理多语种文档的互译工作。DeepL作为近年来崛起的神经网络翻译服务,其翻译质量在专业领域确实令人印象深刻。今天我想分享的是关于DeepL Pro账户的合理使用经验…

2026/9/28 3:31:42 阅读更多 →
MibSPI ECC诊断与内存测试模式实战指南

MibSPI ECC诊断与内存测试模式实战指南

1. MibSPI ECC诊断与内存测试模式详解在嵌入式系统,尤其是汽车电子和工业控制这类对可靠性要求极高的领域,数据在传输和存储过程中的完整性是生死攸关的问题。想象一下,一辆高速行驶的汽车,其电子稳定程序(ESP&#xf…

2026/10/14 6:30:48 阅读更多 →
病理学智能化:基础模型与AI智能体的应用与挑战

病理学智能化:基础模型与AI智能体的应用与挑战

1. 病理学智能化的时代转折点上周刚拿到这份发表在《自然医学》的综述时,我正坐在病理科值班室核对冰冻切片报告。窗外是瑞金医院病理科传承了百年的巴氏染色台,桌面上却摆着最新部署的AI辅助诊断系统——这个颇具象征意义的场景,恰好印证了综…

2026/10/3 4:43:09 阅读更多 →

最新新闻

SQLite+FTS5+BM25构建本地化上下文管理方案

SQLite+FTS5+BM25构建本地化上下文管理方案

1. “context-mode”到底是什么?别被术语唬住,它本质是让AI真正“听懂上下文”的工程实践你最近在技术社区、开源项目讨论区,甚至IDE插件更新日志里反复看到“context-mode”这个词——它不像“HTTP”或“JSON”那样有明确的RFC文档&#xff…

2026/10/15 2:30:22 阅读更多 →
物理AI进化式框架HarnessPAI:让机器人在真实环境中持续进化

物理AI进化式框架HarnessPAI:让机器人在真实环境中持续进化

搞物理AI的这两年,我最大的感触就是:模型在仿真里跑得再好,一到真实环境就露馅。机械臂换个光照条件就抓不准,四足机器人走个地毯就打滑,AGV在仓库里被一张飘起来的塑料膜搞到死锁——这些场景我全经历过。所以你问我为…

2026/10/15 2:30:22 阅读更多 →
高阶英语词汇学习:掌握subtleness的136种场景应用

高阶英语词汇学习:掌握subtleness的136种场景应用

1. 项目概述"Subtleness"这个英文单词学习项目,乍看之下只是一个普通的词汇记忆工具,但深入探究后你会发现它实际上是一个针对高阶英语学习者的精密语言训练系统。作为有着15年英语教学经验的从业者,我见过太多学习者卡在"认识…

2026/10/15 2:30:22 阅读更多 →
Hyperframes高密度帧处理实战:批量聚合与流水线并行优化

Hyperframes高密度帧处理实战:批量聚合与流水线并行优化

1. 从“hyperframes”这个词说起:它到底是什么第一次看到“hyperframes”这个词,很多人会愣一下。它不像“docker”“kubernetes”那样有明确的官方定义,也不像某个具体产品名那样一搜就有官网。我在几个技术社区和创意工具圈子里反复看到这个…

2026/10/15 2:30:22 阅读更多 →
AI铲平个人量化门槛:从策略想法到回测实盘的完整指南

AI铲平个人量化门槛:从策略想法到回测实盘的完整指南

最近有个挺有意思的现象,很多人同时在搜"python量化交易策略代码"、"backtrader策略"、"量化比赛"、"博尔量化资金全景指标源码大全"这类词,另外一批人却在搜"deepseek int4量化"、"onnx量化&qu…

2026/10/15 2:30:22 阅读更多 →
成立三个月,Axiom-0 凭什么登顶 RoboCasa365?——一张具身“泛化能力“排行榜,和它背后的路线之争

成立三个月,Axiom-0 凭什么登顶 RoboCasa365?——一张具身“泛化能力“排行榜,和它背后的路线之争

最近具身智能圈有一则消息很提气:总部位于合肥的初创公司第四定律机器人(4Axiom Robotics),其自研的具身智能模型 Axiom-0 登上了国际权威具身评测基准 RoboCasa365 Benchmark,进入公开排行榜的头部行列——多家媒体用…

2026/10/15 2:29:22 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →