从零搭建 Kubernetes 集群完整指南(CentOS 8 + containerd 版) 从零搭建 Kubernetes 集群完整指南(CentOS 8 + containerd 版)自 K8s 1.24 起,官方正式移除了 dockershim,containerd 已成为目前最主流、最轻量级的容器运行时。本方案采用containerd替代 Docker,不仅资源占用更低,且完全符合云原生标准。环境信息:采用1个master节点,2个node节点系统:CentOS 8 (Vault 8.5.2111)Master:192.168.201.130 (master)Node1:192.168.201.131 (node1)Node2:192.168.201.132 (node2)K8s 版本:1.28.x + containerd包管理器:使用dnf一、所有节点通用配置(三台机器都要执行)1.1 设置主机名与 Hostsbash# === 分别在 master、node1、node2 上执行对应的命令 ===hostnamectl set-hostname master# node1 执行 hostnamectl set-hostname node1,以此类推# 配置 hosts 解析(三台机器都执行)cat/etc/hosts'EOF' 192.168.201.130 master 192.168.201.131 node1 192.168.201.132 node2 EOF1.2 关闭防火墙、SELinux、Swapbashsystemctl stop firewalldsystemctl disable firewalld setenforce0sed-i's/^SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/config swapoff-ased-i'/swap/s/^/#/'/etc/fstab1.3 配置内核参数与模块bashcat/etc/modules-load.d/k8s.conf'EOF' overlay br_netfilter EOFmodprobe overlay modprobe br_netfiltercat/etc/sysctl.d/k8s.conf'EOF' net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 vm.swappiness = 0 EOFsysctl--system1.4 配置国内 DNF 源与时间同步bash# 备份并配置阿里云 CentOS 8 Vault 源mkdir-p/etc/yum.repos.d/backupmv/etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/2/dev/nullcurl-o/etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo dnf clean alldnf makecache dnfinstall-ywgetcurlvimnet-toolstardnf-plugins-core# 启动时间同步systemctl start chronydsystemctlenablechronyd二、安装 containerd(三台机器都要执行)2.1 安装 containerdbash# 添加阿里云 Docker CE 源(containerd.io 包含在此源中)dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposed-i's+download.docker.com+mirrors.aliyun.com/docker-ce+'/etc/yum.repos.d/docker-ce.repo dnf makecache dnfinstall-ycontainerd.io--allowerasing2.2 配置 containerdbash# 生成默认配置文件mkdir-p/etc/containerd containerd config default/etc/containerd/config.toml# 1. 将 Cgroup Driver 修改为 systemd(K8s 强制要求)sed-i's/SystemdCgroup = false/SystemdCgroup = true/g'/etc/containerd/config.toml# 2. 将 sandbox (pause) 镜像替换为阿里云镜像,防止拉取失败sed-i's#sandbox