1. 为什么选择Ubuntu部署Kubernetes 1.23
在容器编排领域,Kubernetes已经成为事实标准。而Ubuntu作为最流行的Linux发行版之一,其稳定的LTS版本和良好的云原生支持使其成为部署Kubernetes的理想选择。1.23版本是Kubernetes的一个重要里程碑,它引入了多项关键改进,包括:
- 更稳定的容器存储接口(CSI)驱动支持
- 增强的Pod安全策略
- 改进的IPv6支持
- 更高效的资源管理
选择这个特定版本组合,既能获得成熟稳定的功能,又能避免最新版本可能存在的兼容性问题。我在生产环境中多次使用这个配置,其稳定性和性能表现都相当出色。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与系统配置
2.1 硬件需求建议
虽然Kubernetes可以在单节点上运行,但为了获得最佳体验,建议至少准备:
- 控制平面节点:2核CPU/4GB内存/20GB存储
- 工作节点:根据工作负载调整,建议2核CPU/4GB内存起
- 所有节点间网络延迟<1ms
注意:生产环境请根据实际负载增加资源,特别是内存和存储。我曾遇到过因内存不足导致kubelet频繁崩溃的情况。
2.2 Ubuntu系统准备
推荐使用Ubuntu 20.04 LTS,它提供了5年的长期支持:
bash复制# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装基础工具
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# 禁用swap(Kubernetes要求)
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
2.3 内核参数调优
对于生产环境,建议调整以下内核参数:
bash复制cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
3. 容器运行时安装与配置
3.1 安装Docker
虽然Kubernetes已经支持containerd作为默认运行时,但Docker仍然是最常用的选择:
bash复制# 添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 添加Docker仓库
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# 配置Docker使用systemd作为cgroup驱动
sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
# 重启Docker
sudo systemctl enable docker
sudo systemctl dae
