当前位置: 首页 > news >正文

Kubernetes 1.32 集群部署:Ubuntu 24.04 双节点 10 分钟快速初始化

Kubernetes 1.32 集群部署:Ubuntu 24.04 双节点 10 分钟快速初始化

1. 环境准备与系统配置

在开始部署 Kubernetes 1.32 集群之前,我们需要确保两台 Ubuntu 24.04 服务器已经完成基础配置。以下是两台节点的推荐配置:

  • Master节点:2核CPU/4GB内存/50GB存储
  • Worker节点:2核CPU/2GB内存/30GB存储

首先在两台服务器上执行以下系统配置命令:

# 禁用交换分区(所有节点执行) sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab # 关闭SELinux(如已安装) sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 加载内核模块(所有节点执行) sudo modprobe overlay sudo modprobe br_netfilter # 配置内核参数 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

提示:确保两台服务器之间可以互相ping通,且主机名解析正常。可以通过编辑/etc/hosts文件或配置DNS实现。

2. 容器运行时安装与配置

Kubernetes 1.32 默认使用 containerd 作为容器运行时。以下是安装步骤:

# 安装containerd(所有节点执行) sudo apt-get update sudo apt-get install -y containerd # 生成默认配置文件 sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml # 修改配置文件使用systemd作为cgroup驱动 sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml # 重启并启用containerd sudo systemctl restart containerd sudo systemctl enable containerd

验证containerd安装:

sudo ctr version

3. Kubernetes组件安装

在所有节点上安装kubeadm、kubelet和kubectl:

# 添加Kubernetes官方GPG密钥 sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg # 添加Kubernetes APT仓库 echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list # 安装组件 sudo apt-get update sudo apt-get install -y kubelet=1.32.* kubeadm=1.32.* kubectl=1.32.* sudo apt-mark hold kubelet kubeadm kubectl

4. 集群初始化

在Master节点上执行初始化命令:

sudo kubeadm init \ --pod-network-cidr=10.244.0.0/16 \ --control-plane-endpoint=$(hostname -f) \ --upload-certs \ --image-repository=registry.aliyuncs.com/google_containers

初始化完成后,按照输出提示配置kubectl:

mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config

5. 网络插件安装

我们选择Flannel作为网络插件:

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

验证网络插件安装:

kubectl get pods -n kube-system -l app=flannel

6. Worker节点加入集群

使用Master节点初始化时提供的join命令将Worker节点加入集群:

sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash <hash>

注意:如果忘记了join命令,可以在Master节点上运行kubeadm token create --print-join-command重新生成。

7. 验证集群状态

在Master节点上运行以下命令验证集群状态:

kubectl get nodes -o wide

输出应显示两个节点均为Ready状态:

NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master01 Ready control-plane 5m v1.32.2 192.168.1.10 <none> Ubuntu 24.04 LTS 6.8.0-31-generic containerd://1.7.0 worker01 Ready <none> 3m v1.32.2 192.168.1.11 <none> Ubuntu 24.04 LTS 6.8.0-31-generic containerd://1.7.0

8. 部署测试应用

验证集群功能是否正常:

kubectl create deployment nginx --image=nginx:latest kubectl expose deployment nginx --port=80 --type=NodePort kubectl get svc nginx

访问测试应用:

curl http://<node-ip>:<node-port>

9. 集群管理技巧

9.1 快速重置节点

如果初始化过程中出现问题,可以使用以下命令重置节点:

sudo kubeadm reset sudo rm -rf /etc/cni/net.d sudo rm -rf $HOME/.kube/config

9.2 常用命令速查表

命令描述
kubectl cluster-info查看集群信息
kubectl get pods -A查看所有命名空间的Pod
kubectl describe node <node-name>查看节点详细信息
kubectl logs <pod-name>查看Pod日志
kubectl exec -it <pod-name> -- /bin/bash进入Pod容器

9.3 性能优化建议

  1. 为kubelet配置资源预留:
sudo vi /var/lib/kubelet/config.yaml

添加或修改以下内容:

systemReserved: cpu: "500m" memory: "500Mi" kubeReserved: cpu: "500m" memory: "500Mi"
  1. 调整containerd资源限制:
sudo vi /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri".containerd]部分添加:

sandbox_cpu = "500m" sandbox_memory = "512Mi"

10. 自动化部署脚本

为了简化部署过程,可以创建一个自动化脚本k8s-init.sh

#!/bin/bash # 系统配置 swapoff -a sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab setenforce 0 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config # 安装containerd apt-get update apt-get install -y containerd mkdir -p /etc/containerd containerd config default | tee /etc/containerd/config.toml sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml systemctl restart containerd systemctl enable containerd # 安装Kubernetes组件 curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list apt-get update apt-get install -y kubelet=1.32.* kubeadm=1.32.* kubectl=1.32.* apt-mark hold kubelet kubeadm kubectl # 仅Master节点执行 if [[ $1 == "master" ]]; then kubeadm init \ --pod-network-cidr=10.244.0.0/16 \ --control-plane-endpoint=$(hostname -f) \ --upload-certs \ --image-repository=registry.aliyuncs.com/google_containers mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml fi

使用方式:

  • Master节点:sudo bash k8s-init.sh master
  • Worker节点:sudo bash k8s-init.sh
http://www.jsqmd.com/news/1131837/

相关文章:

  • 2026国内企业级智能体推荐:6款主流产品功能、适用场景全对比
  • 基于51/STM32单片机智能马桶设计 久坐提醒 换气除臭 杀菌消毒331(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • 7.3量化
  • Vision-Language-Action:LMDrive双损失函数训练模块与 LangAuto 基准评测框架
  • HarmonyKit | 鸿蒙新特性对比:Tabs vs HdsTabs 选型深度解析
  • 嘉立创SMT 2026下单实战:3种器件库存状态解析与5步高效备料策略
  • 高并发秒杀三大核心技术实战
  • vsftpd 3.0.5 安全配置实战:5项关键设置加固FTP服务器
  • KubeFed v0.3.1 实战部署:2集群联邦配置与Nginx应用分发验证
  • 最小权限原则实战:从Linux进程到云原生的五层权限收缩
  • 小产和流产有什么区别?
  • 2026最新8款AI编程助手学生党平替实测合集
  • 【共创季稿事节】随机数生成器:Math.random() 的原理与应用
  • NVMe 2.0b 控制器架构解析:3种控制器类型与2种模型的核心差异
  • web第十一次作业
  • 基于51单片机指纹密码锁/指纹解锁/指纹识别门禁系统/电子21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_
  • 现代密码学实战:Python实现3种经典密码(凯撒、维吉尼亚、RSA)
  • SmileCli04 Multi_Agent实现
  • 如何轻松获取大疆无人机历史固件:5个简单步骤实现固件自由
  • OpenCV 4.x 形态学操作实战:3种结构元素与5种算子对字符识别效果对比
  • 2026最新5款AI编程工具平替实测合集|开发者全方位权威榜单
  • C++中内存池的简单原理及实现详解
  • 告别AI能力局限:从零读懂Tool Calling,实现大模型调用外部工具、落地真实业务
  • PCIe 6.0 DMWr 实战:3步配置与 64B/128B 负载性能对比
  • OnlyOffice 编译包跨平台部署:CentOS 7 系统 5 项关键服务配置详解
  • 今天我重读了一次《重构》,说说我觉得能在AI中用到的几个地方
  • 5分钟解锁:FGA如何让你每天从FGO刷本中解放3小时
  • 河南洛阳无人机维修机构推荐|河南筋斗云翼航空一站式低空产业实训基地
  • 首月半价cursor
  • 26-MCP协议是什么