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/8/11 8:31:23 阅读更多 →
MibSPI ECC诊断与内存测试模式实战指南

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

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

2026/8/11 11:50:31 阅读更多 →
病理学智能化:基础模型与AI智能体的应用与挑战

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

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

2026/8/11 9:00:17 阅读更多 →

最新新闻

vscode-browse-lite 二次开发指南:如何为嵌入式浏览器扩展自定义能力

vscode-browse-lite 二次开发指南:如何为嵌入式浏览器扩展自定义能力

vscode-browse-lite 二次开发指南:如何为嵌入式浏览器扩展自定义能力 【免费下载链接】vscode-browse-lite 🚀 An embedded browser in VS Code 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-browse-lite vscode-browse-lite 是一款运行在…

2026/8/16 20:36:29 阅读更多 →
Linux定时任务Cron实战:每分钟执行Shell脚本的完整指南

Linux定时任务Cron实战:每分钟执行Shell脚本的完整指南

1. 项目概述:为什么需要每分钟执行一次脚本? 在运维、数据同步、监控告警乃至日常开发工作中,我们经常会遇到一个高频需求:让某个任务以固定的、极短的周期自动运行。比如,你需要实时监控一个日志文件,一旦…

2026/8/16 20:36:29 阅读更多 →
Linux Cron定时任务实战:编写可靠每分钟执行的Shell脚本

Linux Cron定时任务实战:编写可靠每分钟执行的Shell脚本

1. 项目概述:为什么需要每分钟执行一次脚本? 在运维、数据采集、监控告警或者自动化测试的场景里,我们经常会遇到一个需求:让某个任务以极高的频率,比如每分钟,自动执行一次。这个需求听起来简单&#xff0…

2026/8/16 20:36:29 阅读更多 →
覆盖12+编程语言:palenight.vim 多语言语法高亮适配详解

覆盖12+编程语言:palenight.vim 多语言语法高亮适配详解

覆盖12编程语言:palenight.vim 多语言语法高亮适配详解 【免费下载链接】palenight.vim Soothing color scheme for your favorite [best] text editor 项目地址: https://gitcode.com/gh_mirrors/pa/palenight.vim palenight.vim 是一款基于 Material Pale …

2026/8/16 20:36:29 阅读更多 →
开源许可证怎么写进README?readme-checklist 给出的满分答案与3个范例

开源许可证怎么写进README?readme-checklist 给出的满分答案与3个范例

开源许可证怎么写进README?readme-checklist 给出的满分答案与3个范例 【免费下载链接】readme-checklist A checklist for writing READMEs 项目地址: https://gitcode.com/gh_mirrors/re/readme-checklist 开源许可证怎么写进 README,是很多新手…

2026/8/16 20:36:29 阅读更多 →
Git入门必学:详解HTTPS、SSH、Git协议三种克隆方式与实战避坑指南

Git入门必学:详解HTTPS、SSH、Git协议三种克隆方式与实战避坑指南

1. 项目概述:为什么“克隆”是Git入门的第一个关键动作 刚接触Git,很多人会被 commit 、 push 、 branch 这些概念绕晕。但在我看来,无论你未来要用Git做什么,第一个必须牢牢掌握的命令,绝对是 git clone 。你…

2026/8/16 20:35:28 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →