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

Ubuntu 22.04 安装 K8S 1.28.2版本

第一步:所有节点安装 K8s 核心组件(Master + Worker)

查看可以安装的版本(选择最新的版本安装)
` apt-cache madison kubeadm`# 1.安装指定版本的 K8s 组件(避免自动升级)
sudo apt install -y kubelet=1.28.2-00 kubeadm=1.28.2-00 kubectl=1.28.2-00# 2. 锁定版本(防止 apt 更新自动升级)
sudo apt-mark hold kubelet kubeadm kubectl# 3. 验证安装(显示版本即成功)
kubeadm version
kubectl version --client

第二步:Master 节点初始化集群(仅 Master 执行)

初始化是搭建集群的核心步骤,需指定 Pod 网段(默认 10.244.0.0/16,与主机网段不冲突即可):

# 1. 初始化集群(替换为 Master 节点的静态 IP)
sudo kubeadm init \--apiserver-advertise-address=192.168.38.201 \  # Master 静态 IP,必填--image-repository=registry.aliyuncs.com/google_containers \  # 国内阿里云镜像,加速拉取--kubernetes-version=v1.28.2 \  # 与安装的组件版本一致--pod-network-cidr=10.244.0.0/16 \  # Pod 网段,后续网络插件需匹配--service-cidr=10.96.0.0/12  # 服务网段,默认值即可# 2. 初始化成功后,执行以下命令配置 kubectl 权限(非 root 用户需执行)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config# 3. 验证 Master 节点状态(显示 Ready 即成功)
kubectl get nodes
# 此时 Master 节点状态是 NotReady(缺少网络插件),下一步解决
  • 遇到pause下载失败的问题
# 手动下载,并打tag
sudo ctr -n k8s.io images pull registry.aliyuncs.com/google_containers/pause:3.10.1
sudo ctr -n k8s.io images tag registry.aliyuncs.com/google_containers/pause:3.10.1 registry.k8s.io/pause:3.10.1# 1. 执行 kubeadm 重置(基础清理)
sudo kubeadm reset -f# 2. 停止并禁用 kubelet(释放端口占用)
sudo systemctl stop kubelet
sudo systemctl disable kubelet# 3. 清理残留的配置文件和目录(关键,手动删除未清理的文件)
sudo rm -rf /etc/kubernetes/*
sudo rm -rf /var/lib/etcd/*
sudo rm -rf /var/lib/kubelet/*
sudo rm -rf /var/run/kubernetes/*# 4. 重启 Containerd(释放容器占用的端口)
sudo systemctl restart containerd# 5. 检查端口是否释放(验证 10250/10257/2379/2380 端口)
sudo netstat -tulpn | grep -E '10250|10257|2379|2380'
# 输出为空则端口已释放;若有输出,kill 对应的进程(示例:kill -9 进程ID)# 重新执行集群初始化
sudo kubeadm init   --apiserver-advertise-address=192.168.38.201   --image-repository=registry.aliyuncs.com/google_containers   --kubernetes-version=v1.28.2   --pod-network-cidr=10.244.0.0/16   --service-cidr=10.96.0.0/12

第三步:安装网络插件(仅 Master 执行,解决 NotReady)

K8s 集群必须安装网络插件才能让 Pod 通信,推荐用 Calico(轻量、适配性强):

bash
运行
# 1. 下载 Calico 配置文件(适配 Pod 网段 10.244.0.0/16)
curl -O https://raw.githubusercontent.com/projectcalico/calico/v3.27.0/manifests/calico.yaml# 2. 部署 Calico 插件
kubectl apply -f calico.yaml# 3. 验证网络插件(等待 1-2 分钟,所有 Pod 状态为 Running)
kubectl get pods -n kube-system
# 重点看 calico-node-xxx、calico-kube-controllers-xxx 状态是否为 Running# 4. 再次验证 Master 节点(显示 Ready 即成功)
kubectl get nodes
若 Calico 镜像拉取慢,可替换为国内镜像(修改 calico.yaml 中 image 为 registry.aliyuncs.com/calico/xxx),或等待自动拉取完成。

第四步:Worker 节点加入集群(仅 Worker 执行)

使用 Master 初始化成功后复制的 kubeadm join 命令,示例:

bash
运行
# 替换为你实际的 join 命令(包含 token 和 hash)
sudo kubeadm join 192.168.1.100:6443 \--token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef# 若 token 过期,在 Master 节点执行以下命令重新生成:
# sudo kubeadm token create --print-join-command

第五步:验证集群(Master 节点执行)

bash
运行
# 1. 查看所有节点(均显示 Ready)
kubectl get nodes
# 输出示例:
# NAME         STATUS   ROLES           AGE   VERSION
# k8s-master   Ready    control-plane   10m   v1.28.8
# k8s-worker   Ready    <none>          5m    v1.28.8# 2. 查看集群状态
kubectl cluster-info# 3. 测试创建一个 Pod(验证 Worker 节点可调度)
kubectl run nginx --image=nginx:alpine
kubectl get pods -o wide  # 查看 Pod 是否运行在 Worker 节点
http://www.jsqmd.com/news/379102/

相关文章:

  • 小容量32单片机也上bootloader?拆机烧录的苦谁懂,能上抓紧上
  • 用AI专著写作工具就对了!流程全解析,轻松搞定百万字巨著
  • WPS数据写入Word模版文档,批量生成文档 - 实践
  • 掌握AI专著撰写技巧,搭配优质工具,轻松打造专业学术专著
  • 基于深度学习YOLOv12的杂草检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • 基于深度学习YOLOv12的学生课堂行为识别检测系统(YOLOv12+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • AI写专著高效攻略:工具测评与应用,快速完成学术专著任务
  • 基于深度学习YOLOv11的学生课堂行为检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • 基于深度学习YOLOv11的安全帽检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)
  • Docker开启tcp监听
  • 2026国内最新门窗胶源头厂家top5推荐!服务深度覆盖江苏、山东、济南等地,优质门窗胶品牌权威榜单发布,合规环保助力高品质建材应用 - 品牌推荐2026
  • 第11天:内容创作——高效产出优质内容
  • 2026国内最新最新门窗胶源头厂家top5推荐!服务深度覆盖江苏、山东、济南等地,优质门窗胶品牌权威榜单发布,合规环保助力高品质建材应用 - 品牌推荐2026
  • 7步实战路线图,小白也能学会大模型,收藏这份未来指南!
  • TikTok视频下载的架构演进:从WPF客户端到Blazor Server的跨平台实践
  • 详细介绍:【文献分享】LyMOI一种结合深度学习和大规模语言模型的用于解读组学数据的工作流程
  • 2026国内最新光伏胶品牌推荐!服务深度覆盖江苏、山东、济南、云南等地,优质光伏胶厂商权威榜单发布,专业品质助力光伏项目高效运行 - 品牌推荐2026
  • 基于Python的在线选课系统[python]-计算机毕业设计源码+LW文档
  • 电池组散热分析:利用ANSYS Fluent流体动力学模拟研究电池组散热性能与优化设计
  • 2026国内最新光伏胶品牌top5推荐!服务深度覆盖江苏、山东、济南、云南等地,优质光伏胶厂商权威榜单发布,专业品质助力光伏项目高效运行 - 品牌推荐2026
  • 股市基础知识
  • OpenAI首次在Cerebras芯片上部署AI模型
  • 第十六天
  • Fastly第四季度业绩大超预期,股价暴涨30%并上调2026年预测
  • CLIProxyAPI:一款可以统一OpenAI协议和Anthropic协议的代理工具
  • 阿尔托大学与帕多瓦大学研究:大语言模型知识图谱质检能力评估
  • OpenAI发布GPT-5.3-Codex-Spark快速推理编程模型
  • 2月13号
  • 波兰语AI安全守护神:SpeakLeash基金会推出Bielik Guard语言安全分类器 - 科技行者
  • Oracle Java授权变化引发用户大规模焦虑