当前位置: 首页 > 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://icebutterfly214.com/news/158255/

相关文章:

  • 2025年餐饮加盟食材新鲜度与性价比排名:小屉鲜食材新鲜度如何 - 工业品网
  • 思源宋体安装教程:5分钟轻松获取专业中文字体
  • 终极指南:如何用Real-ESRGAN实现AI图像超分与画质修复
  • Vortex模组管理器高级技巧:从系统配置到性能优化的完整指南
  • 3步搞定视频修复:零基础也能让模糊视频秒变高清
  • log-lottery 3D球体抽奖系统:重新定义企业活动互动体验
  • OpCore Simplify:3步搞定黑苹果EFI配置的智能方案
  • 如何用TensorFlow构建图神经网络(GNN)?
  • 打造惊艳3D抽奖体验:企业活动互动升级终极指南
  • 自动化超参搜索:TensorFlow with Keras Tuner实战
  • 5分钟终极指南:零基础玩转Qwen-Image-Edit智能AI图像编辑
  • 123云盘高效优化指南:突破下载限制的完整配置方案
  • OpCore Simplify终极指南:零基础打造完美黑苹果EFI配置
  • AtlasOS系统优化指南:打造极致流畅的Windows体验
  • 跨平台字体终极解决方案:PingFangSC完整使用指南
  • SoundCloud音乐下载终极指南:如何轻松保存你喜欢的音乐
  • 汇编语言全接触-52.PE教程3 File Header(文件头)
  • 智能EFI配置革命:5分钟自动化生成完美黑苹果配置
  • 3步打造专属音乐空间:any-listen跨平台播放器终极指南
  • PingFangSC字体包:跨平台网页字体统一解决方案
  • ViVeTool GUI完整使用指南:5分钟掌握Windows隐藏功能管理技巧
  • 5分钟彻底告别SQL代码混乱:智能检查工具实战指南
  • Cherry Studio:智能桌面助手的革命性突破与实战应用
  • SQLFluff终极指南:5步实现零错误SQL代码规范
  • 5分钟快速上手LTspice控制库:电路仿真的终极利器
  • PDF处理神器:从问题诊断到高效解决方案全解析
  • ESP32-S3 PWM控制LED亮度实操指南
  • Qlib量化研究平台终极指南:AI驱动的投资策略开发全流程
  • Shairport4w:让Windows电脑变身智能AirPlay接收器
  • VutronMusic音乐播放器:打造专业级音乐体验的完全指南