1. Kubernetes 1.31集群部署实战指南
作为容器编排领域的事实标准,Kubernetes已经成为云原生技术栈的核心组件。本文将基于1.31版本,详细演示如何从零开始搭建一个生产可用的Kubernetes集群。不同于官方文档的抽象描述,这里会结合笔者多年运维经验,分享实际部署中的技巧和避坑指南。
本次部署采用经典的三节点架构:1个Master节点负责集群控制平面,2个Worker节点运行工作负载。所有节点均使用RHEL 9.3操作系统,容器运行时选择containerd,网络插件采用高性能的Calico方案。下面就从环境准备开始,逐步完成集群搭建。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境规划与准备
2.1 主机规划
集群角色与IP分配如下表所示:
| 节点角色 | IP地址 | 主机名 |
|---|---|---|
| 控制节点-Master | 172.25.254.10/24 | k8s-master1.kaser.org |
| 工作节点-Node1 | 172.25.254.50/24 | k8s-node1.kaser.org |
| 工作节点-Node2 | 172.25.254.60/24 | k8s-node2.kaser.org |
生产建议:Master节点建议配置至少4核CPU和8GB内存,Worker节点根据工作负载需求调整。所有节点应确保时钟同步,否则会导致证书验证失败等诡异问题。
2.2 系统初始化配置
2.2.1 基础环境配置
在所有节点执行以下初始化操作:
bash复制# 禁用防火墙
systemctl disable --now firewalld
# 关闭SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 设置静态IP(示例为ens160网卡)
nmcli con mod ens160 ipv4.method manual ipv4.addresses 172.25.254.10/24 ipv4.gateway 172.25.254.1
nmcli con up ens160
# 设置主机名
hostnamectl set-hostname k8s-master1.kaser.org
2.2.2 内核参数调优
Kubernetes对Linux内核有些特殊要求,需要调整以下参数:
bash复制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
# 加载br_netfi
