尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Kubernetes 1.30 从零安装实战:架构、二进制与 kubeadm 全解析
一、前置规划集群设计1.网络规划根据自己资源合理规划2. 网络规划集群 Pod 网段10.244.0.0/16Flannel/Calico 默认网段集群 Service 网段10.96.0.0/12K8s 默认 Service 网段节点间通信端口需开放 6443API Server、2379-2380etcd、10250kubelet等端口后续环境准备会详细列出3. 工具准备容器运行时containerdK8s 1.24 推荐替代 Docker集群部署工具kubeadm官方推荐轻量高效网络插件Calico生产级支持网络策略、跨节点通信命令行工具kubectlK8s 集群管理 CLI二、环境准备所有节点执行1. 系统初始化关闭干扰服务1关闭防火墙CentOS# 关闭 firewalldsystemctl stop firewalld systemctl disable firewalld# 关闭 selinux临时永久setenforce 0 sed -i s/^SELINUXenforcing$/SELINUXpermissive/ /etc/selinux/config2关闭 swap 分区K8s 要求# 临时关闭 swapswapoff -a# 永久关闭注释 swap 分区行sed -i /swap/s/^/#/ /etc/fstab# 验证Swap 行均为 0 则成功free -h3配置内核参数开启 IP 转发、模块加载创建内核配置文件cat /etc/sysctl.d/k8s.conf EOFnet.bridge.bridge-nf-call-iptables 1net.bridge.bridge-nf-call-ip6tables 1net.ipv4.ip_forward 1net.ipv4.tcp_tw_recycle 0vm.swappiness 0EOF加载内核模块并生效# 加载 br_netfilter 模块modprobe br_netfilter# 生效内核参数sysctl -p /etc/sysctl.d/k8s.conf# 验证确保返回 1sysctl net.bridge.bridge-nf-call-iptables4配置时间同步避免节点时间不一致# CentOS 安装 chronyyum install -y chrony systemctl start chronyd systemctl enable chronyd# 验证时间同步状态chronyc sources2. 安装容器运行时containerdK8s 1.24 不再依赖 Docker直接使用 containerd 作为容器运行时步骤如下1安装 containerdCentOS# 安装依赖yum install -y yum-utils device-mapper-persistent-data lvm2# 添加 Docker 源containerd 包含在 Docker 源中cat /etc/yum.repos.d/docker-ce.repo EOF[docker-ce-stable]nameDocker CE Stablebaseurlhttps://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/stable/enabled1gpgcheck0EOFyum install -y containerd.io-1.6.9-3.1.el82配置 containerd关键适配 K8s 要求生成默认配置文件containerd config default /etc/containerd/config.toml编辑配置文件vi /etc/containerd/config.toml配置 CRI 端点确保 enabled 为 true[plugins.io.containerd.grpc.v1.cri.containerd.runtimes.runc][plugins.io.containerd.grpc.v1.cri.containerd.runtimes.runc.options]SystemdCgroup true # 启用 systemd cgroup 驱动K8s 推荐重启 containerd 并设置开机自启systemctl restart containerd systemctl enable containerd# 验证 containerd 状态active (running) 则成功systemctl status containerd3. 安装 K8s 组件kubeadm、kubelet、kubectl所有节点均需安装步骤如下1添加 K8s 官方源cat /etc/yum.repos.d/kubernetes.repo EOF[kubernetes]nameKubernetesbaseurlhttps://pkgs.k8s.io/core:/stable:/v1.30/rpm/enabled1gpgcheck0repo_gpgcheck0EOF或者cat EOF | tee /etc/yum.repos.d/kubernetes.repo[kubernetes]nameKubernetesbaseurlhttps://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/enabled1gpgcheck1gpgkeyhttps://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/rpm/repodata/repomd.xml.keyEOF清理缓存yum clean allyum makecache查询可用版本yum list kubelet --showduplicates | sort -r三、集群创建控制平面节点执行1. 初始化控制平面master 节点核心命令kubeadm init需指定 Pod 网段、Service 网段、镜像仓库国内适配。(1)执行初始化命令kubeadm init --kubernetes-version1.30.0 --pod-network-cidr10.244.0.0/16 --service-cidr10.96.0.0/12 --image-repositoryregistry.aliyuncs.com/google_containers --control-plane-endpoint192.168.131.132(2)等待初始化完成约 5-10 分钟取决于网络速度初始化成功后会输出以下关键信息务必保存用于工作节点加入集群kubeadm join 192.168.131.132:6443 --token q1j7ye.f1p2w7ekguq16u8s --discovery-token-ca-cert-hash sha256:62ef190f32f93cb774a8ea37f31caeaaddb33f996c1614290fbe563a0a0873eb --control-plane --certificate-key b494960c6b5a853a2f1051d0b88c8ce3c69dd5c8b468958633998a7028b5462b(3)配置 kubectl 权限master 节点执行让普通用户可操作集群# 普通用户如 root配置mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config# 验证 kubectl 可用性输出控制平面节点信息STATUS 为 Ready 则成功kubectl get nodes2.安装网络插件Calicomaster 节点执行2. 安装网络插件Calicomaster 节点执行K8s集群初始化后节点状态为NotReady需安装CNI网络插件实现跨节点通信。推荐 Calico生产级支持网络策略。1下载 Calico 配置文件国内加速wget https://projectcalico.docs.tigera.io/v3.25/manifests/calico.yaml2修改配置文件适配 Pod 网段编辑calico.yaml确保CALICO_IPV4POOL_CIDR与kubeadm init时指定的 --pod-network-cidr 一致查找并修改以下内容- name: CALICO_IPV4POOL_CIDRvalue: 10.244.0.0/16 # 与初始化时的 Pod 网段一致在calico-node下面的env里面添加修改下面配置- name: IP_AUTODETECTION_METHODvalue: interfaceenp*3部署 Calicokubectl apply -f calico.yaml4验证 Calico 部署等待 3-5 分钟# 查看 Calico Pod 状态所有 Pod 均为 Running 则成功kubectl get pods -n kube-system -l k8s-appcalico-node# 查看节点状态所有节点 STATUS 为 Ready 则网络正常kubectl get nodes
RELATED

相关推荐

一键将图片转为炫酷字符画

一键将图片转为炫酷字符画

在这篇文章里头, 我们会去用到下面这些个知识点的哦。完整的一个程序, 那个用来把图片转换成字符画的py脚本。请先在命令行工具中找到存放图片文件的那个目录位置, 接着把当前路径切换到那个地方去执行操作, 然后启动名为图片转字符画.py的这个程序脚本并在其后面跟上参数.png这…

📅 2026/9/30 2:41:38
cocos2d-x双人坦克大战demo:输入分发与碰撞判定实战

cocos2d-x双人坦克大战demo:输入分发与碰撞判定实战

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

📅 2026/9/30 2:41:38
Verilog三段式状态机设计:状态编码、串口实现与跨平台映射

Verilog三段式状态机设计:状态编码、串口实现与跨平台映射

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

📅 2026/9/30 2:41:38
MORE NEWS

更多资讯

📰

百度前端实习一面全记录:原理、手写题与项目追问实战

1. 面试前夜:百度前端实习的一面到底在考什么2026年3月11日,我参加了百度前端实习的一面。说实话,面完出来最大的感受是:百度的面试风格和网上流传的那些“背题就能过”的经验帖真的不太一样。先交代一下背景,我是某双…

📰

Unity iOS Deep Link 完整接入:从链接配置到 C# 参数透传避坑指南

做手游的都知道,拉新靠买量,回流靠唤醒。而 iOS 端的 Deep Link,就是那条把用户从 Safari、广告页、活动 H5 重新拽回游戏 App 的绳子。很多人以为这不就是配个 URL Scheme 的事,但真做到 Unity 工程里就会发现,从链接…

📰

Wireshark看不到虚拟机网卡?一文搞懂VMware抓包接口选择与操作

最近有个朋友在群里吐槽:虚拟机里装好系统、配好网络,想在物理机的 Wireshark 上抓虚拟机的流量,结果打开 Wireshark 的捕获接口列表,翻来覆去只看到物理无线网卡、以太网卡和一堆“Adapter for loopback”,愣是找不到…

📰

STM32CubeMx与RT-Thread Studio联合开发串口报错全排查指南

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

📰

基于Hadoop与Spark的图书自动标注系统设计与实现

前阵子做了一个图书类别自动标注系统,正好把 Hadoop、Spark、Django 和机器学习串成了一整条链路,标题看着像课程设计,但真做下来涉及的坑一点都不少。从大数据环境搭建到数据清洗,再到模型训练和可视化大屏,每一步都值…

📰

OpenClaw接入企业微信实战:一条命令之外的六大代价与完整配置

"OpenClaw 一条命令接入企业微信",这话我最近在好几个自动化群里都看到过。坦白讲,第一次看到我也挺心动:打开终端、复制一行脚本、回车,然后就等着机器人上线,谁不想要这种体验。但等你真跑完一圈就会发现&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬