1. Kubernetes 1.23 集群部署概述
在Ubuntu 22.04上部署Kubernetes 1.23集群是一个相对成熟稳定的选择,特别是对于需要长期维护的生产环境。Kubernetes 1.23版本是最后一个官方支持Docker作为容器运行时的版本,这使得它成为许多传统部署场景的理想选择。
我选择这个特定版本组合有几个重要考虑:
- Ubuntu 22.04 LTS提供5年的长期支持,确保系统层面的稳定性
- Kubernetes 1.23与Docker的兼容性经过充分验证
- 这个组合有丰富的社区支持和问题解决方案
本次部署采用1个Master节点和2个Worker节点的架构,这是最小的高可用配置,能够满足大多数开发和测试环境的需求。Master节点将运行控制平面组件(API Server、Controller Manager、Scheduler等),而Worker节点则运行实际的工作负载。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与系统配置
2.1 主机规划与网络设置
在开始之前,我们需要规划好集群的主机配置。以下是本次部署的节点规划:
| 主机名 | IP地址 | 角色 | CPU | 内存 | 磁盘 |
|---|---|---|---|---|---|
| master | 192.168.183.4 | Master | 2核 | 4GB | 20GB |
| node1 | 192.168.183.11 | Worker | 2核 | 4GB | 20GB |
| node2 | 192.168.183.15 | Worker | 2核 | 4GB | 20GB |
注意:生产环境建议Master节点配置不低于4核8GB,Worker节点根据工作负载需求调整
首先在所有节点上设置主机名和hosts解析:
bash复制# 在master节点
sudo hostnamectl set-hostname master
# 在node1节点
sudo hostnamectl set-hostname node1
# 在node2节点
sudo hostnamectl set-hostname node2
然后编辑/etc/hosts文件,添加所有节点的IP和主机名映射:
bash复制cat >> /etc/hosts << EOF
192.168.183.4 master
192.168.183.11 node1
192.168.183.15 node2
EOF
2.2 系统基础配置
Kubernetes对Linux系统有一些特定的要求,我们需要在所有节点上进行以下配置:
- 关闭交换分区(Kubernetes不支持swap):
bash复制# 临时关闭
swapoff -a
# 永久关闭
sed -i '/swap/s/^/#/' /etc/fstab
- 启用IP转发和优化内核参数:
bash复制cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
- 确保时间同步:
bash复制sudo apt -y install ntpdate
ntpdate ntp.aliyun.com
- 安装常用工具:
bash复制sudo apt update
sudo apt install -y vim lrzsz unzip wget net-tools tree bash-completion teln
