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

Kubeadm安装K8S集群

本次安装1.33版本参考官网
https://v1-33.docs.kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

  1. 环境查看
    系统环境
# uname  -a
Linux iZ7xv2oxvtpwp70zxjl8yfZ 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
# lsb_release -a
LSB Version:    core-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.5 LTS
Release:        22.04
Codename:       jammy

软件环境

  1. 安装基础工具
    关闭交互分区
# swapoff -a

更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包:

sudo apt-get update
# apt-transport-https 可能是一个虚拟包(dummy package);如果是的话,你可以跳过安装这个包
sudo apt-get install -y apt-transport-https ca-certificates curl gpg

下载用于 Kubernetes 软件包仓库的公共签名密钥。所有仓库都使用相同的签名密钥,因此你可以忽略URL中的版本:

# 如果 `/etc/apt/keyrings` 目录不存在,则应在 curl 命令之前创建它,请阅读下面的注释。
# sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

添加 Kubernetes apt 仓库。 请注意,此仓库仅包含适用于 Kubernetes 1.33 的软件包; 对于其他 Kubernetes 次要版本,则需要更改 URL 中的 Kubernetes 次要版本以匹配你所需的次要版本 (你还应该检查正在阅读的安装文档是否为你计划安装的 Kubernetes 版本的文档)。

# 此操作会覆盖 /etc/apt/sources.list.d/kubernetes.list 中现存的所有配置。
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本:

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

查看安装版本
需要版本对应如果不对应可能会出现各种问题

# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"33", EmulationMajor:"", EmulationMinor:"", MinCompatibilityMajor:"", MinCompatibilityMinor:"", GitVersion:"v1.33.7", GitCommit:"a7245cdf3f69e11356c7e8f92b3e78ca4ee4e757", GitTreeState:"clean", BuildDate:"2025-12-09T14:41:01Z", GoVersion:"go1.24.11", Compiler:"gc", Platform:"linux/amd64"}
root@iZ7xv2oxvtpwp70zxjl8yfZ:~# kubectl version
Client Version: v1.33.7
Kustomize Version: v5.6.0
The connection to the server localhost:8080 was refused - did you specify the right host or port?
root@iZ7xv2oxvtpwp70zxjl8yfZ:~# kubelet --version
Kubernetes v1.33.7
  1. 初始化集群
    安装containerd
apt install containerd

初始化集群
设置Master节点ip和pod的网段

kubeadm init --apiserver-advertise-address=172.16.5.117 --pod-network-cidr=10.244.0.0/16

下载镜像等待时间较长
错误提示如下

# kubeadm init --apiserver-advertise-address=172.16.5.117 --pod-network-cidr=10.244.0.0/16
I1223 10:45:46.039362    4388 version.go:261] remote version is much newer: v1.35.0; falling back to: stable-1.33
[init] Using Kubernetes version: v1.33.7
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

设置

sysctl -w net.ipv4.ip_forward=1
sysctl net.ipv4.ip_forward

永久生效

vim /etc/sysctl.conf
# 添加
net.ipv4.ip_forward=1

如果本机无法访问国外网站的需要从可以访问国外网站的主机导出镜像再到需要安装的主机导入镜像

如果版本不一致比如kubeadm版本是1.33.7 但是导入的镜像版本是1.33.6则可以指定版本安装

sudo apt-get install -y kubeadm=1.33.6-1.1 --allow-downgrades
kubectl version
apt list -a kubectl
sudo apt-get install -y kubectl=1.33.6-1.1 --allow-downgrades

需要加参数--allow-downgrades因为之前有hold版本
不知道版本则使用以下命令查看

apt list -a kubelet

安装完成后还是需要固定版本

sudo apt-mark hold kubelet kubeadm kubectl

init成功之后输出如下

Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG=/etc/kubernetes/admin.confYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 172.16.5.117:6443 --token uelkr9.ieoyqa1nuviimqg4 \--discovery-token-ca-cert-hash sha256:4037d12b8607287282a6cc20ef4bc4125baee378f619c2ee9caa3faa621316cd

按提示操作即可
安装网络组件

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
  1. 其他节点加入集群
http://www.zskr.cn/news/162152.html

相关文章:

  • 3步轻松搞定黑苹果:告别复杂配置的智能助手
  • 一文说清ESP32固件库下载在智能家居中的作用
  • 2025年度北京融资顾问服务推荐TOP5:线上融资顾问哪家强? - 工业设备
  • SeqKit终极指南:生物序列处理的完整解决方案
  • 如何甄别真正具备全场景落地能力的服务商?2025年年终智能巡检机器狗领域深度评测与权威推荐! - 品牌推荐
  • Open-AutoGLM元素定位技术深度解析(从入门到高阶应用)
  • 强化学习入门:TensorFlow Agents框架快速上手
  • FreeCAD 3D建模:重新定义参数化设计的开源革命
  • 机器人抓取动作实现:Arduino驱动舵机精准角度调节
  • FreeCAD插件终极指南:从零开始掌握3D建模神器 [特殊字符]
  • 【Open-AutoGLM自动化部署终极指南】:手把手教你5步完成模型上线
  • OpCore Simplify黑苹果革命:告别繁琐配置的智能解决方案
  • Vortex模组管理器高级技巧:从系统配置到性能优化的完整指南
  • log-lottery 3D球体抽奖系统:企业活动数字化转型的完美解决方案
  • 【Open-AutoGLM测试框架深度解析】:掌握AI驱动自动化测试的5大核心能力
  • 2025商用扫地机器人TOP5权威推荐:甄选实力品牌 - 工业设备
  • Easy Rules入门指南:5步掌握Java规则引擎的核心用法
  • 【节点】[NormalBlend节点]原理解析与实际应用
  • 黑苹果EFI一键生成神器:OpCore智能配置完整指南
  • log-lottery 3D球体抽奖系统:重新定义企业活动互动体验
  • 智能黑苹果配置终极指南:从复杂到简单的完整解决方案
  • 如何快速创建专业幻灯片:Obsidian模板终极指南
  • 使用pymodbus开发Modbus TCP客户端:实战案例
  • Whisper语音识别新纪元:大型模型的速度革命
  • OpCore Simplify:黑苹果新手的终极自动化配置神器
  • 打造惊艳3D抽奖体验:企业活动互动升级终极指南
  • 目标检测入门到精通:TensorFlow Object Detection API详解
  • BoilR:一键实现跨平台游戏同步管理,让你的Steam库更完整
  • Steamless完全攻略:轻松移除Steam DRM保护的专业工具
  • Stremio-Web终极故障排除指南:从入门到精通的12个实用技巧