Ubuntu24.04部署kubernetes1.33.3版本全流程详细指南

作者头像
袋鼠 本文作者

2025-8-4 阅读 164 约 4分钟读完

评论0

一、 确认配置

  • 两个控制节点、两个工作节点、两个负载均衡节点、两台镜像仓库,模拟生产环境高可用

    节点类型 数量 CPU 内存 磁盘 主机名 IP 关键服务/组件
    master节点 2 4核 4G 40G master1,master2 10.31.3.211-212/16 HAProxy,kube-apiserver, etcd, kube-scheduler, contained
    worker节点 2 4核 4G 40G worker1,worker2 10.31.3.221-222/16 kubelet, kube-proxy, contained
    负载均衡节点 2 4核 4G 40G slb1,slb2 10.31.3.231-232/16;10.31.3.240/16(VIP) HAProxy,Keepalived,Nginx
    私有镜像库节点 2 4核 4G 40G harbor1,harbor2 10.31.3.241-242/16 Docker,Harbor, contained
  • 部署顺序:镜像仓库 --→ 负载均衡 --→ 控制节点 --→ 工作节点

    • 理由:先部署配置私有镜像仓库确保部署集群时拉取镜像不会失败,需提前将所需镜像都推送到私有镜像仓库中;然后配置负载均衡节点验证VIP漂移,再使用VIP的地址初始化控制节点,最后在工作节点上通过控制节点生成的join命令加入集群
  • 证书:测试环境可以不使用证书,如需模拟正式环境则需在通用配置后在主控制节点上生成通用证书,再分发至所有节点,有些节点还需要单独配置专属证书。

二、 配置环境

2.1 通用配置(所有节点都需)

# 1. 配置使用国内安装源,加快安装速度
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list

# 2. 安装必备基础工具,分别是刷新、更新、安装,chrony为时间同步软件
sudo apt update && sudo apt upgrade -y && sudo apt install -y chrony

# 3. 修改主机名为master1,其他主机同理修改为对应主机名,便于区分主机并配置解析,每台不同,主机名必须不同且符合DNS命名规则(小写字母、数字、连字符)
sudo hostnamectl set-hostname master1

# 4. 为防止IP变动导致无法访问,master1主机固定IP地址为10.31.3.211,其他主机同理固定为对应IP,enp6s18为网卡名,可通过ip addr查看实际网卡名,routes为默认网关,nameservers为dns
cat <<EOF | sudo tee /etc/netplan/50-cloud-init.yaml
network:
  version: 2
  ethernets:
    enp6s18:
      dhcp4: no
      addresses: [10.31.3.211/16]
      routes:
        - to: default
          via: 10.31.0.1
      nameservers:
        addresses: [10.31.0.1, 223.5.5.5]
EOF

# 5. 在hosts文件中追加所有主机的IP和主机名的映射关系,使可以通过主机名访问
cat <<EOF | sudo tee -a /etc/hosts
10.31.3.211 master1
10.31.3.212 master2
10.31.3.221 worker1
10.31.3.222 worker2
10.31.3.231 slb1
10.31.3.232 slb2
10.31.3.241 harbor1
10.31.3.242 harbor2
EOF

# 6. 时间同步(关键):时间不同步会导致证书验证失败(误差需<1秒)
sudo timedatectl set-timezone Asia/Shanghai
sudo systemctl enable chrony && sudo systemctl start chrony

2.2 基础配置(除harbor节点外都需)

# 1. 交换分区会降低kubelet性能所以禁用,swapoff -a临时禁用,free -h 查看内存
sudo swapoff -a && sudo sed -i 's/^.*swap.*$/#&/' /etc/fstab

# 2. 加载内核模块,为后续网络优化提供否则报错,验证输入lsmod | grep br_netfilter 命令应有输出
sudo tee /etc/modules-load.d/k8s.conf <<EOF
br_netfilter
overlay
EOF

sudo modprobe br_netfilter overlay

# 3. 网络参数优化,net.ipv4.ip_forward允许Pod跨节点通信
sudo tee /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

# 4. 应用配置
sudo sysctl --system

harbor配置参照请点击这里,证书配置参照请点击这里

2.3 部署containerd容器(除负载均衡节点外都需)

# 1. 生成默认配置
sudo apt install -y containerd && mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml

# 2. 关键修改:使用systemd cgroup驱动和国内镜像,SystemdCgroup必须设置true,否则kubelet无法启动
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
sudo sed -i 's|registry.k8s.io/pause:3.8|registry.aliyuncs.com/google_containers/pause:3.10|g' /etc/containerd/config.toml

# 3. 配置私有仓库在[plugins."io.containerd.grpc.v1.cri".registry.mirrors]下方,注意缩进2格
sudo nano /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.mysen.top"]
  endpoint = ["http://harbor.mysen.top"]
[plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.mysen.top".tls]
  insecure_skip_verify = true
‌
# 4. 重启服务
sudo systemctl restart containerd && sudo systemctl enable containerd
# 验证:sudo ctr version
文章目录
      上一篇 100个IT运维知识 下一篇 Ubuntu 24.04搭建高可用Harbor私有镜像仓库
      评论
      评论已关闭