Ubuntu 24.04.2 上使用 Kubeadm 和 Containerd 部署 Kubernetes 1.31.6 集群全攻略

1. 环境准备

在开始部署Kubernetes集群之前,我们需要确保Ubuntu 24.04.2系统已经做好了充分的准备。这部分工作看似简单,但却是整个部署过程的基础,稍有不慎就可能导致后续步骤失败。我曾在多个项目中因为环境准备不充分而踩过坑,所以特别强调这部分内容的重要性。

首先,我们需要检查系统的基本信息。打开终端,执行以下命令查看系统版本和硬件配置:

hostnamectl
free -h
df -Th

这些命令会显示主机名、内存使用情况和磁盘空间等信息。Kubernetes对硬件有一定要求,建议至少2核CPU、4GB内存和20GB磁盘空间。如果是生产环境,建议配置更高。

接下来是关键的准备工作:

  1. 禁用交换分区:Kubernetes默认不支持交换内存,我们需要永久禁用交换分区。执行以下命令:
sudo swapoff -a
sudo sed -i '/swap/s/^/#/' /etc/fstab
  1. 加载内核模块:Kubernetes需要一些内核模块支持,特别是网络相关的模块。创建配置文件并加载模块:
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter
  1. 配置系统参数:调整内核参数以满足Kubernetes的网络需求:
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
  1. 设置主机名解析:确保每个节点都能正确解析主机名。可以修改/etc/hosts文件,或者配置DNS服务器。如果是单节点测试,可以直接在/etc/hosts中添加记录:
echo "127.0.0.1 $(hostname)" | sudo tee -a /etc/hosts
  1. 安装基础工具:安装一些常用的工具方便后续操作:
sudo apt update
sudo apt install -y curl wget vim net-tools

这些准备工作完成后,建议重启系统以确保所有配置生效。我曾经遇到过因为没重启导致内核参数不生效的情况,浪费了不少时间排查问题。

2. 安装和配置Containerd

Containerd作为Kubernetes推荐的容器运行时,相比Docker更加轻量级,资源占用更少。这部分我会详细介绍如何从零开始安装和配置Containerd,包括一些优化配置。

首先,我们需要安装Containerd及其相关组件。官方提供了几种安装方式,这里我们选择直接下载二进制包的方式,这样可以获得最新版本:

# 下载Containerd
wget https://github.com/containerd/containerd/releases/download/v1.7.24/containerd-1.7.24-linux-amd64.tar.gz
sudo tar Cxzvf /usr/local containerd-1.7.24-linux-amd64.tar.gz

接下来安装runc,这是Containerd依赖的容器运行时:

wget https://github.com/opencontainers/runc/releases/download/v1.2.3/runc.amd64
sudo install -m 755 runc.amd64 /usr/local/sbin/runc

然后安装CNI插件,这是Kubernetes网络的基础:

wget https://github.com/containernetworking/plugins/releases/download/v1.4.0/cni-plugins-linux-amd64-v1.4.0.tgz
sudo mkdir -p /opt/cni/bin
sudo tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.4.0.tgz

创建Containerd的systemd服务文件:

cat <<EOF | sudo tee /etc/systemd/system/containerd.service
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.targe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值