新闻详情

新闻详情

首页 / 资讯中心 / 详情

K8s集群生产环境Kubeadm安装部署对接实操

发布时间:2026/9/28 21:09:03来源:尧图网络
K8s集群生产环境Kubeadm安装部署对接实操
K8s集群生产环境Kubeadm安装部署对接实操技术栈kubeadm v1.32.13 Kubernetes v1.32.13 Rocky Linux 8.6 Containerd 1.7.x Calico操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案K8s集群生产环境Kubeadm安装部署对接实操操作环境K8s 集群版本 v1.32.13kubeadm 初始化操作系统 Rocky Linux 8.6内核 4.18.x容器运行时 Containerd 1.7.13已配置 systemd cgroup3 Master 3 Worker高可用架构网络插件 Calico v3.27.xPod CIDR 10.244.0.0/16离线镜像仓库 Harbor已预加载 K8s 组件镜像root 权限主机名解析正常时间同步对接原理kubeadm 是官方推荐的 K8s 集群部署工具通过 init/join/upgrade/reset 等子命令管理集群生命周期。kubeadm init 在 Master 节点生成证书CA/apiserver/etcd/front-proxy、静态 Pod 清单apiserver/controller-manager/scheduler/etcd、kubeconfig 文件admin/controller-manager/scheduler/kubelet、ConfigMapkubeadm-config/kubelet-config并启动控制平面。kubeadm join 通过 bootstrap token 向 apiserver 认证获取集群信息配置 kubelet 并加入集群。高可用部署需外部 etcd 或堆叠 etcd 负载均衡HAProxy/Keepalivedapiserver 指向 VIP。证书默认有效期1年可用 kubeadm certs renew 续期CA 证书10年。升级流程kubeadm upgrade plan 检查 - kubeadm upgrade applyMaster- kubeadm upgrade nodeWorker- 升级 kubelet/kubectl。详细步骤1. 系统初始化# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld # 关闭SELinux setenforce 0 sed -i s/^SELINUXenforcing$/SELINUXpermissive/ /etc/selinux/config # 关闭Swap swapoff -a sed -i /swap/d /etc/fstab # 内核参数 cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 EOF sysctl --system # 加载ipvs模块 cat /etc/sysconfig/modules/ipvs.modules EOF #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- ip_vs_sh modprobe -- nf_conntrack EOF chmod 755 /etc/sysconfig/modules/ipvs.modules bash /etc/sysconfig/modules/ipvs.modules # 时间同步 yum install -y chrony systemctl enable --now chronyd2. 安装Containerd和kubeadm# 安装Containerd yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y containerd.io containerd config default /etc/containerd/config.toml sed -i s/SystemdCgroup false/SystemdCgroup true/ /etc/containerd/config.toml sed -i s#registry.k8s.io#harbor.example.com/k8s# /etc/containerd/config.toml systemctl enable --now containerd # 安装kubeadm/kubelet/kubectl cat /etc/yum.repos.d/kubernetes.repo EOF [kubernetes] nameKubernetes baseurlhttps://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled1 gpgcheck0 repo_gpgcheck0 EOF yum install -y kubelet-1.32.13 kubeadm-1.32.13 kubectl-1.32.13 systemctl enable kubelet # 配置crictl crictl config runtime-endpoint unix:///run/containerd/containerd.sock3. kubeadm init初始化集群# 预拉取镜像 kubeadm config images pull --image-repository harbor.example.com/k8s --kubernetes-version v1.32.13 # 初始化集群 kubeadm init \ --kubernetes-version v1.32.13 \ --apiserver-advertise-address10.0.0.10 \ --control-plane-endpoint10.0.0.100:6443 \ --pod-network-cidr10.244.0.0/16 \ --service-cidr10.96.0.0/12 \ --image-repository harbor.example.com/k8s \ --cri-socketunix:///run/containerd/containerd.sock \ --upload-certs # 配置kubectl mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config # 安装Calico kubectl apply -f https://docs.projectcalico.org/v3.27/manifests/calico.yaml # 查看节点 kubectl get nodes验证流程# 1. 验证节点状态 kubectl get nodes # 所有节点Ready # 2. 验证系统Pod kubectl get pods -n kube-system # 核心组件Running # 3. 验证网络 kubectl get pods -n kube-system | grep calico # 4. 验证DNS kubectl run dns-test --imagebusybox --restartNever -- nslookup kubernetes # 5. 验证证书 kubeadm certs check-expiration # 6. 验证版本 kubectl version --short kubeadm version排错方案kubeadm init失败检查端口6443/10250/2379是否被占用镜像是否可拉取--image-repositorycgroup驱动是否一致systemdswap是否关闭内核参数是否配置节点join失败检查token是否有效kubeadm token listCA hash是否正确网络是否可达Master VIP防火墙是否放行cri-socket是否正确证书过期kubeadm certs check-expiration查看kubeadm certs renew all续期重启控制平面静态Pod更新admin.conf注意CA证书10年有效期升级失败先kubeadm upgrade plan检查兼容性逐个节点升级Worker升级前cordondrainkubeadm和kubelet版本匹配升级后重启kubeletetcd故障检查etcd静态Pod是否Runningetcd数据目录/var/lib/etcdetcdctl endpoint health磁盘空间是否充足多Master时etcd集群是否健康apiserver不启动检查证书是否有效etcd是否可达--advertise-address是否正确端口是否被占用查看apiserver日志高可用VIP不漂移检查Keepalived配置state/priority/virtual_router_idHAProxy后端健康检查防火墙放行VRRP协议节点间网络连通重置不干净kubeadm reset后清理iptables/ipvs/CNI/kubelet数据容器运行时数据必要时重启节点重新join前确保完全清理
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

基于CH552的USB HID键盘模拟器实战:从枚举到按键上报全解析 2026/9/28 22:52:37

基于CH552的USB HID键盘模拟器实战:从枚举到按键上报全解析

前阵子我给自己定了个小目标:用最少的花费,做一个能自定义键位的USB HID键盘模拟器。起因是日常写代码需要频繁敲组合键,有些软件里的快捷键用得非常频繁,一个独立的宏键盘能省下不少重复操作。看了一圈成品,要么价格不…

阅读更多 →
C++类型萃取(Type Traits)原理详解:从SFINAE到enable_if的编译期编程机制 2026/9/28 22:52:37

C++类型萃取(Type Traits)原理详解:从SFINAE到enable_if的编译期编程机制

如果你在泛型编程里被“模板报错一屏、但能编译过”的代码坑到过,这一篇值得花十分钟读完。这篇文章要聊的是C里一个非常底层、又非常容易被误解的机制:类型萃取(Type Traits)。它做的事情一句话可以讲完——在编译期对类型做“体…

阅读更多 →
树莓派5双MIPI接口实战:同时驱动CSI摄像头与DSI屏幕的完整配置指南 2026/9/28 22:52:24

树莓派5双MIPI接口实战:同时驱动CSI摄像头与DSI屏幕的完整配置指南

树莓派5刚发布那会儿,我第一时间入手了一块,冲着它那两个四通道MIPI接口去的。之前用树莓派4做视觉小车,CSI摄像头和DSI屏幕只能二选一,想同时接就得走HDMI或者SPI小屏,线缆一堆不说,刷新率和延迟都让人难受…

阅读更多 →
ConstraintLayout约束问题详解:过度约束与缺失约束的排查修复 2026/9/28 22:52:24

ConstraintLayout约束问题详解:过度约束与缺失约束的排查修复

1. 为什么 ConstraintLayout 的约束系统总出问题做安卓开发的,几乎没有不用 ConstraintLayout 的。官方在 Android Studio 2.3 时代就把它定为默认布局,后来的 Jetpack 组件、Compose 以外的 XML 页面几乎全员“约束化”。它最大的卖点是用一套相对位置关…

阅读更多 →
航班订票系统实战:并发控制、订单状态机与数据库设计 2026/9/28 22:52:24

航班订票系统实战:并发控制、订单状态机与数据库设计

1. 项目启动:m241这个编号背后的真实需求接手"m241航班订票管理系统"这个项目的时候,其实挺有意思的。编号m241是实训基地的项目标识,但落到实际开发上,需求一点都不抽象——就是一个能查航班、能订票、能管订单的Web系…

阅读更多 →
分布式数据库全面解读:架构原理、技术选型与生产落地 2026/9/28 22:52:17

分布式数据库全面解读:架构原理、技术选型与生产落地

分布式数据库这个概念,这两年在架构讨论里几乎已经到了绕不开的地步。但说句实话,我在平时评审方案、看技术博客、和同行对需求的时候,发现很多人对分布式数据库的理解还停留在“把数据拆开放到多台机器上”的层面。至于它和传统分库分表到底…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉