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

【Kubernetes-1.30】--containerd部署

文章目录

    • 一、环境准备
      • 1.1 三台服务器
      • 1.2 基础配置(三台机通用)
      • 1.3 关闭 Swap(必须)
      • 1.4 关闭防火墙(可选)
      • 1.5 加载必要模块 & 配置内核参数
    • 二、安装容器运行时(containerd 推荐)
    • 三、安装 Kubernetes 组件
      • 3.1 添加 apt 源
      • 3.2 安装 Kubernetes v1.30
    • 四、初始化 Master 节点(只在 master 上操作)
      • 配置 kubectl 使用
    • 五、安装网络插件(使用 Flannel 示例)
    • 六、加入 Worker 节点(在 worker1、worker2 上操作)
    • 七、验证集群状态(master 上执行)

Ubuntu 22.04 上部署 Kubernetes 1.30 集群的完整步骤(1 个 Master + 2 个 Worker):

一、环境准备

1.1 三台服务器

主机名IP地址角色
master192.168.1.10控制节点
worker1192.168.1.11工作节点
worker2192.168.1.12工作节点

1.2 基础配置(三台机通用)

sudo hostnamectl set-hostname <主机名>  # 分别设置为 master、worker1、worker2# 修改 hosts 文件
sudo vim /etc/hosts
# 添加以下内容
192.168.1.10 master
192.168.1.11 worker1
192.168.1.12 worker2

1.3 关闭 Swap(必须)

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

1.4 关闭防火墙(可选)

sudo systemctl disable --now ufw

1.5 加载必要模块 & 配置内核参数

# 加载模块
sudo modprobe overlay
sudo modprobe br_netfilter# 配置内核参数
cat <<EOF | sudo tee /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOFsudo sysctl --system

二、安装容器运行时(containerd 推荐)

# 安装依赖
sudo apt update && sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release# 安装 containerd
sudo apt install -y containerd# 配置默认文件
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml# 修改containerd的镜像源---让他和kubeadm保持一样的源
sudo sed -i 's|sandbox_image = .*|sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"|' /etc/containerd/config.toml# 修改 Cgroup Driver 为 systemd
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml# 重启服务
sudo systemctl restart containerd
sudo systemctl enable containerd

三、安装 Kubernetes 组件

3.1 添加 apt 源

sudo curl -fsSLo /etc/apt/keyrings/kubernetes-apt-key.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpgecho "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-key.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" \| sudo tee /etc/apt/sources.list.d/kubernetes.listsudo apt update

国内建议换成阿里
旧源:deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
最高支持到1.28
apt-cache madison kubeadm

# 添加阿里云镜像源
echo "deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main" | \sudo tee /etc/apt/sources.list.d/kubernetes.list# 添加 GPG key
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | \sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/kubernetes-aliyun.gpg# 更新源
sudo apt update

或者
新源:https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/
目前支持到1.3X

sudo rm -f /etc/apt/sources.list.d/kubernetes.list
sudo rm -f /etc/apt/trusted.gpg.d/kubernetes-aliyun.gpg
# 创建 keyrings 目录,用于存放源的签名文件(Ubuntu 22.04 推荐做法)
sudo mkdir -p /etc/apt/keyrings# 下载阿里云 Kubernetes 1.30 的 GPG 签名文件,并转为 APT 可识别的格式(.gpg)
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key | \gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg# 添加 Kubernetes 1.30 的 APT 软件源到系统源列表
# signed-by= 指定只信任这个源对应的 GPG 密钥,避免信任全局
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] \
https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /" | \
sudo tee /etc/apt/sources.list.d/kubernetes.listapt update

在这里插入图片描述

3.2 安装 Kubernetes v1.30

# 安装 kubelet、kubeadm、kubectl 的 1.30.1 版本
sudo apt install -y kubelet=1.30.1-1.1 kubeadm=1.30.1-1.1 kubectl=1.30.1-1.1# 锁定版本,防止未来 apt upgrade 时被升级
sudo apt-mark hold kubelet kubeadm kubectl

四、初始化 Master 节点(只在 master 上操作)

(可选)提前拉取 kubeadm 所需镜像(避免初始化失败)

sudo kubeadm config images pull \--image-repository=registry.aliyuncs.com/google_containers \--kubernetes-version=v1.30.1
# 使用默认的 containerd 和 flannel 的 pod 网段 10.244.0.0/16
# 初始化 kubeadm(将 192.168.121.134 替换为你 master 节点的实际 IP)
sudo kubeadm init \--apiserver-advertise-address=192.168.121.134 \--image-repository=registry.aliyuncs.com/google_containers \--kubernetes-version=1.30.1 \--pod-network-cidr=10.244.0.0/16

初始化成功后,会输出一条 kubeadm join … 命令,把它复制保存,用于让 worker1 和 worker2 节点加入集群。

kubeadm join 192.168.121.134:6443 --token rlb4zl.ab1ghdphpyqx3jt4 \--discovery-token-ca-cert-hash sha256:6afb88e798521ecb63191de8aa93cb7d573f88cae41cea50086942a2626a5a12

配置 kubectl 使用

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

五、安装网络插件(使用 Flannel 示例)

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

等几秒后可以查看是否网络组件准备就绪

kubectl get pods -n kube-system

六、加入 Worker 节点(在 worker1、worker2 上操作)

使用 master 初始化时输出的命令,如:

sudo kubeadm join 192.168.1.10:6443 --token <token> \--discovery-token-ca-cert-hash sha256:<hash>

七、验证集群状态(master 上执行)

kubectl get nodes

应该能看到三台机器都处于 Ready 状态。
在这里插入图片描述

http://www.lryc.cn/news/2396992.html

相关文章:

  • Flutter 嵌套H5 传参数
  • 什么是线程上下文切换?
  • Jvm 元空间大小分配原则
  • 相机--相机标定
  • MongoDB(七) - MongoDB副本集安装与配置
  • 131. 分割回文串-两种回溯思路
  • [Java恶补day13] 53. 最大子数组和
  • 摩尔投票算法原理实现一文剖析
  • springboot项目下面的单元测试注入的RedisConnectionFactory类redisConnectionFactory值为什么为空呢?
  • MyBatis操作数据库(2)
  • C++面向对象(二)
  • 【C语言入门级教学】冒泡排序和指针数组
  • shell脚本中常用的命令
  • Nuxt3部署
  • 网络攻防技术一:绪论
  • 【人工智能】deepseek七篇论文阅读笔记大纲
  • unix/linux source 命令,在当前的 Shell 会话中读取并执行指定文件中的命令
  • [leetcode] 二分算法
  • imgsz参数设置
  • 【算法】分支限界
  • 使用 C/C++ 和 OpenCV 调用摄像头
  • 历史数据分析——广州港
  • 数据库管理与高可用-MySQL全量,增量备份与恢复
  • 从gitee仓库中恢复IDEA项目某一版本
  • 用dayjs解析时间戳,我被提了bug
  • [git每日一句]Changes not staged for commit
  • 架构师面试题整理
  • 类和对象:实现日期类
  • 基于springboot的运动员健康管理系统
  • 华为云Flexus+DeepSeek征文 | 初探华为云ModelArts Studio:部署DeepSeek-V3/R1商用服务的详细步骤