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

Kubernetes 极速安装与排障实战手册 (v1.35.2)

本次ubuntu22系统# **Kubernetes 高可用集群 极速安装与排障实战手册 (v1.35.2)**## 第一章基础安装篇### 1.1 所有节点基础环境bash# 关闭 swapswapoff -a sed -i /swap/s/^/#/ /etc/fstab# 加载内核模块cat /etc/modules-load.d/k8s.conf EOFoverlaybr_netfilternf_conntrackEOFmodprobe overlay br_netfilter nf_conntrack# 配置系统参数cat /etc/sysctl.d/99-kubernetes.conf EOFnet.bridge.bridge-nf-call-iptables 1net.bridge.bridge-nf-call-ip6tables 1net.ipv4.ip_forward 1kernel.panic 10kernel.panic_on_oops 1vm.overcommit_memory 1vm.swappiness 0net.netfilter.nf_conntrack_max 1048576net.core.somaxconn 32768net.ipv4.tcp_tw_reuse 1net.ipv4.ip_local_port_range 10240 60999fs.inotify.max_user_watches 524288fs.file-max 1048576EOFsysctl -p /etc/sysctl.d/99-kubernetes.conf### 1.2 配置 containerd关键镜像加速bash# 安装 containerdapt-get update apt-get install -y containerd# 生成配置并修改mkdir -p /etc/containerdcontainerd config default | tee /etc/containerd/config.tomlsed -i s/SystemdCgroup false/SystemdCgroup true/ /etc/containerd/config.tomlsed -i s#sandbox_image registry.k8s.io/pause:3.8#sandbox_image registry.aliyuncs.com/google_containers/pause:3.10# /etc/containerd/config.toml# 能下载就不替换添加镜像加速器【注意下载不下镜像就配置下面的加速都是这样换源加速】cat /etc/containerd/config.toml EOF[plugins.io.containerd.grpc.v1.cri.registry.mirrors][plugins.io.containerd.grpc.v1.cri.registry.mirrors.docker.io]endpoint [https://docker.m.daocloud.io, https://docker.xuanyuan.me][plugins.io.containerd.grpc.v1.cri.registry.mirrors.quay.io]endpoint [https://quay.m.daocloud.io][plugins.io.containerd.grpc.v1.cri.registry.mirrors.registry.k8s.io]endpoint [https://k8s.m.daocloud.io]EOF# 重启并启用systemctl restart containerd systemctl enable containerd### 1.3 安装 kubeadm/kubelet/kubectlbash# 配置源curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.35/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpgecho deb [signed-by/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.35/deb/ / | tee /etc/apt/sources.list.d/kubernetes.listapt-get update# 安装并锁定版本apt-get install -y kubelet1.35.2-1.1 kubeadm1.35.2-1.1 kubectl1.35.2-1.1apt-mark hold kubelet kubeadm kubectl### 1.4 Master 节点初始化bashkubeadm init \--apiserver-advertise-address192.168.1.38 \--image-repository registry.aliyuncs.com/google_containers \--pod-network-cidr10.244.0.0/16 \--kubernetes-version v1.35.2# 配置 kubectlmkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config# 保存 join 命令kubeadm token create --print-join-command /root/kubeadm-join-command.txt---## 第二章网络插件Calico安装与排障### 2.1 下载并修改 Calico 配置bash# 下载wget https://raw.githubusercontent.com/projectcalico/calico/v3.31.0/manifests/calico.yaml# 修改 Pod CIDR必须和初始化一致sed -i /CALICO_IPV4POOL_CIDR/,1 s/# // calico.yamlsed -i s/192.168.0.0\/16/10.244.0.0\/16/ calico.yaml# 修改镜像地址为国内源sed -i s?docker.io/calico?quay.io/calico?g calico.yaml# 注意quay.io 也需要加速已在 containerd 中配置# 应用kubectl apply -f calico.yaml### 2.2 Calico 常见问题修复bash# 问题1install-cni 容器一直失败# 解决在 Worker 节点清理 CNI 目录rm -rf /etc/cni/net.d/*rm -rf /opt/cni/bin/*systemctl restart containerd# 问题2token 缺失导致 Unauthorizedkubectl delete secret -n kube-system calico-cni-plugin-token 2/dev/nullcat EOF | kubectl apply -f -apiVersion: v1kind: Secretmetadata:name: calico-cni-plugin-tokennamespace: kube-systemannotations:kubernetes.io/service-account.name: calico-cni-plugintype: kubernetes.io/service-account-tokenEOF# 问题3BGP not established对端节点 Calico 没起来kubectl delete pod -n kube-system -l k8s-appcalico-node---## 第三章Worker 节点加入### 3.1 Worker 节点初始化脚本bash# 在 Worker 节点执行cat worker-init.sh EOF#!/bin/bash# 基础环境同 Masterswapoff -a sed -i /swap/s/^/#/ /etc/fstabmodprobe overlay br_netfilter nf_conntrackcat /etc/sysctl.d/99-kubernetes.conf EOL# ... 复制上面的 sysctl 配置 ...EOLsysctl -p /etc/sysctl.d/99-kubernetes.conf# 安装 containerd 并配置加速器同 Masterapt-get update apt-get install -y containerdmkdir -p /etc/containerdcontainerd config default | tee /etc/containerd/config.tomlsed -i s/SystemdCgroup false/SystemdCgroup true/ /etc/containerd/config.tomlsed -i s#sandbox_image registry.k8s.io/pause:3.8#sandbox_image registry.aliyuncs.com/google_containers/pause:3.10# /etc/containerd/config.toml# 添加 mirrors 配置同上systemctl restart containerd systemctl enable containerd# 安装 kubelet/kubeadmcurl -fsSL https://pkgs.k8s.io/core:/stable:/v1.35/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpgecho deb [signed-by/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.35/deb/ / | tee /etc/apt/sources.list.d/kubernetes.listapt-get updateapt-get install -y kubelet1.35.2-1.1 kubeadm1.35.2-1.1apt-mark hold kubelet kubeadmEOFchmod x worker-init.sh./worker-init.sh# 加入集群kubeadm join 192.168.1.38:6443 --token your-token --discovery-token-ca-cert-hash sha256:your-hash---## 第四章控制平面组件排障重启后的噩梦解决### 4.1 核心问题probe-port 变量未替换这是重启后 etcd、apiserver、controller-manager、scheduler 卡在 0/1 的根本原因。bash# 检查是否有 probe-port 变量grep -r probe-port /etc/kubernetes/manifests/# 一键替换所有 probe-port 为实际端口sed -i s/port: probe-port/port: 2381/g /etc/kubernetes/manifests/etcd.yaml # etcd 端口 2381sed -i s/port: probe-port/port: 10257/g /etc/kubernetes/manifests/kube-controller-manager.yaml # controller-manager 端口 10257sed -i s/port: probe-port/port: 10259/g /etc/kubernetes/manifests/kube-scheduler.yaml # scheduler 端口 10259# apiserver 通常没有 probe-port 问题如有则改 10259# 修改后无需重启kubelet 自动生效### 4.2 etcd 健康检查bash# 手动测试 etcd 健康端口curl http://127.0.0.1:2381/readyz# 测试 etcd 业务端口ETCDCTL_API3 etcdctl --endpointshttps://127.0.0.1:2379 \--cacert/etc/kubernetes/pki/etcd/ca.crt \--cert/etc/kubernetes/pki/apiserver-etcd-client.crt \--key/etc/kubernetes/pki/apiserver-etcd-client.key \endpoint health### 4.3 容器名称冲突CreateContainerErrorbash# 清理残留容器crictl ps -a | grep -E kube-controller-manager|kube-scheduler | grep Exited | awk {print $1} | xargs -r crictl rm# 重启 kubeletsystemctl restart kubelet### 4.4 一键重启所有控制平面组件bash# 移动清单文件触发重建for component in etcd kube-apiserver kube-controller-manager kube-scheduler; domv /etc/kubernetes/manifests/${component}.yaml /tmp/sleep 5mv /tmp/${component}.yaml /etc/kubernetes/manifests/donesystemctl restart kubelet---## 第五章重启后一键恢复脚本重启后先重启worker后master 只有 节点一个pod运行不起来kubectl delete pod -n kube-system calico-node-thfbj 例如这个是节点pod 直接删除kubectl get pods -n kube-system -w | grep calico-node 再观察创建 /root/k8s-recover.sh包含所有经验bash#!/bin/bashecho echo Kubernetes 重启后一键恢复脚本echo echo 1. 等待 60 秒让系统启动...sleep 60echo 2. 检查 probe-port 变量if grep -r probe-port /etc/kubernetes/manifests/; thenecho 发现 probe-port 变量正在修复...sed -i s/port: probe-port/port: 2381/g /etc/kubernetes/manifests/etcd.yamlsed -i s/port: probe-port/port: 10257/g /etc/kubernetes/manifests/kube-controller-manager.yamlsed -i s/port: probe-port/port: 10259/g /etc/kubernetes/manifests/kube-scheduler.yamlfiecho 3. 清理残留容器crictl ps -a | grep -E kube-controller-manager|kube-scheduler | grep Exited | awk {print $1} | xargs -r crictl rmecho 4. 重启 kubeletsystemctl restart kubeletsleep 30echo 5. 检查 etcd 健康curl -s http://127.0.0.1:2381/readyz echo etcd 健康 || echo etcd 异常echo 6. 重启 Calico 和 kube-proxykubectl delete pod -n kube-system -l k8s-appcalico-node 2/dev/nullkubectl delete pod -n kube-system -l k8s-appkube-proxy 2/dev/nullkubectl delete pod -n kube-system -l k8s-appkube-dns 2/dev/nullecho 7. 等待 60 秒...sleep 60echo 8. 最终状态kubectl get pods -Akubectl get nodesecho echo 恢复脚本执行完毕bashchmod x /root/k8s-recover.sh---## 第六章日常运维与验证### 6.1 快速验证集群bash# 测试 DNSkubectl run test-dns \--imagedocker.m.daocloud.io/busybox:latest \--rm -it \--restartNever \-- nslookup kubernetes.default.svc.cluster.local# 测试调度kubectl run test-nginx --imagenginx --restartNever --rm -it -- echo ok# 查看所有 Podkubectl get pods -A -o wide### 6.2 节点维护bash# 正确重启顺序先 Worker后 Master# 在 Worker 节点reboot# 等待 3 分钟后在 Master 节点reboot# 重启后执行恢复脚本/root/k8s-recover.sh### 6.3 备份重要数据bash# 备份证书cp -r /etc/kubernetes/pki /root/k8s-backup-$(date %Y%m%d)# 备份静态 Pod 清单cp -r /etc/kubernetes/manifests /root/manifests-backup-$(date %Y%m%d)---## 第七章问题速查表| 现象 | 错误日志关键词 | 快速解决 ||:---|:---|:---|| etcd 0/1 | probe-port | sed -i s/port: probe-port/port: 2381/g /etc/kubernetes/manifests/etcd.yaml || controller-manager 0/1 | probe-port | sed -i s/port: probe-port/port: 10257/g /etc/kubernetes/manifests/kube-controller-manager.yaml || scheduler 0/1 | probe-port | sed -i s/port: probe-port/port: 10259/g /etc/kubernetes/manifests/kube-scheduler.yaml || Calico Unauthorized | Unauthorized | 重新创建 token见 2.2 || Calico BGP not established | BGP not established with | 删除对端节点 Calico Pod || CreateContainerError | name is reserved for | crictl rm 清理残留容器 || 镜像拉取超时 | i/o timeout | 检查 containerd 加速器配置 |---这份手册包含了我们这次所有实战经验你只需保存为 .md 文件以后无论是新装集群还是处理重启故障都能快速解决。

相关文章:

Kubernetes 极速安装与排障实战手册 (v1.35.2)

本次ubuntu22系统# **Kubernetes 高可用集群 极速安装与排障实战手册 (v1.35.2)**## 第一章:基础安装篇### 1.1 所有节点基础环境 bash # 关闭 swap swapoff -a && sed -i /swap/s/^/#/ /etc/fstab# 加载内核模块 cat > /etc/modules-load.d/k8s.conf &l…...

Vue3 性能优化实践

Vue3 性能优化实践 | 源码解析系列 6.4一,引言 性能优化是前端开发中的重要课题,Vue3虽然相比Vue2有了显著的性能提升,但在实际应用中仍需要开发者注意一些性能问题。本文将分享Vue3性能优化的最佳实践,帮助开发者构建高性能的Vue…...

大规模驱动企业 AI:Elastic 与 NVIDIA cuVS 集成

作者:来自 Elastic Brian BergholmRachael WadeHubert GrzesiekAleta Hubbell 无缝向量化高容量数据,并通过 GPU 加速向量搜索的新黄金标准加快生产上线时间。 总结 Elastic 与 NVIDIA 合作推出了由 NVIDIA cuVS 提供支持的 GPU 加速向量索引。集成到 NV…...

基于stc单片机电动车多用户充电设计(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T0942204C设计简介:本设计是基于stc单片机电动车多用户充电设计,主要实现以下功能:1.通过3个继电器控制电动车充电的开关…...

问卷设计:从“手工匠人”到“书匠策AI智造”的华丽转身

在学术研究的广袤天地里,问卷设计宛如一座桥梁,连接着研究者的思考与被调查者的反馈。然而,传统的问卷设计过程,往往像是一位手工匠人在精心雕琢一件艺术品,虽然细致入微,却也耗时费力,且容易受…...

FunASR:几行代码搞定语音识别全流程的开源工具包,GitHub已获15.2k Star!

导读语音识别(ASR)是人工智能落地最广泛的方向之一,但学术界的前沿模型与工业界的实际部署之间一直存在距离。阿里达摩院开源的 FunASR,正是为弥合这一差距而生。它提供基于大规模工业语料训练的预训练模型,支持训练、…...

Comsol 探索变质量注浆理论:压力与沉积颗粒、渗透率的奇妙关联

comsol变质量注浆理论,根据魏建平《裂隙煤体注浆浆液扩散规律及变质量渗流模型研究》,考虑不同注浆压力,进行了不同压力下的注浆封堵模拟,沉积颗粒浓度随着注浆压力增大会变大,渗透率负相关。最近在研究注浆相关的课题…...

神州路由器vlan 10访问电信,vlan 20访问移动的配置

SWA配置: CS6200-28X-Pro> CS6200-28X-Pro>ena CS6200-28X-Pro#conf CS6200-28X-Pro(config)#vlan 10;20;100;1017;1018 CS6200-28X-Pro(config)#int vlan 10 CS6200-28X-Pro(config-if-vlan10)#ip add 192.168.10.254 255.255.255.0 CS6200-28X-Pro(config-if-vlan10…...

SQL优化全攻略:从索引设计到执行计划的深度解析

SQL优化全攻略:从索引设计到执行计划的深度解析 在数据爆炸的时代,一条低效的SQL查询可能拖垮整个系统。本文通过索引策略示例、查询优化案例及Explain工具对比,为你揭开SQL优化的神秘面纱,实现从“慢查询”到“毫秒级响应”的质变…...

微电网分层控制与二次控制策略下的顶刊复现:事件触发控制图与模型研究

微电网分层控制,二次控制,顶刊复现,有事件触发控制图和模型微电网的二次控制就像给系统装了个智能调节器,传统的一次控制扛得住电压频率的瞬时波动,但真要玩长期稳定还得靠二次层出手。最近复现某顶刊的模型时发现&…...

PCB壳状结构-硬件一体化设计革命性突破

做过硬件量产的工程师都懂,传统硬件生产有一个绕不开的“繁琐流程”:先设计平面PCB,完成电路布线与元器件贴片,再单独开模做塑料或金属外壳,后期通过螺丝、卡扣将PCB与外壳组装成型。这套模式沿用了数十年,…...

FreeRTOS内部机制(二)

文章目录FreeRTOS内部机制(二)3.队列(Queue)3.1队列的核心:关中断、环形缓冲区、链表3.1.1怎么互斥访问数据3.1.2 怎么传递数据?3.1.3 怎么休眠/唤醒3.2操作示例3.2.1创建队列3.2.2读队列3.2.3写队列4.信号量(semaphore)4.1优先级…...

python-flask新能源汽车租赁管理系统的设计与实现_django pycharm vue

目录技术栈选择系统模块设计开发流程数据库设计部署方案扩展功能建议项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作以下是关于使用Python Flask、Django、PyCharm和Vue.js实现新能源汽车租赁管理系统…...

智慧农业农业四情监测系统 农情定点监测系统

AI害虫自动识别,精准辨虫、智能预警系统搭载行业先进的AI智能图像识别算法,搭配高清户外摄像头,24小时不间断自动捕捉田间害虫动态,告别传统人工下田查虫、肉眼辨认、耗时费力的弊端。AI模型经过海量农业害虫样本训练,…...

同花顺公式语法实战笔记

文章目录2026-03-17报错代码修正后代码报错报错 行3: 语法错误, 变量<开始测试>未定义报错 行5: 语法错误, 错误的输出线型错误代码正确代码-DOTLINE版本正确代码-LINETHICK1版本其他调试技巧2026-03-17 报错代码 MA5 : MA(CLOSE, 5); MA10 : MA(CLOSE, 10); { 新增&am…...

SQL-忘记sa密码,如何安全的尝试旧密码,如何修改新密码

Q: 现是记住密码的状态&#xff0c;所以可以直接登录。但是操作员忘了sa的密码&#xff0c;想尝试一下sa密码&#xff0c;如果不正确仍可保证能登录进去&#xff0c;那么当前的密码状态是否要勾选记住密码。 当前是勾选了记住密码&#xff0c;但想验证 sa 密码&#xff0c;且要…...

猫头虎AI分享:什么是QClaw?QClaw 是基于 OpenClaw 的极简封装,QClaw的下载、安装、配置指南

猫头虎AI分享&#xff1a;什么是QClaw&#xff1f;QClaw 是基于 OpenClaw 的极简封装&#xff0c;QClaw的下载、安装、配置指南 &#x1f42f; 猫头虎博主按&#xff1a;腾讯终于出手了&#xff01;这款"龙虾"Agent让我看到了国产AI工具的新可能——不用配环境、不用…...

python-flask的美食分享交流平台_django pycharm vue

目录技术选型与框架说明后端实现&#xff08;Flask&#xff09;数据库模型设计前端实现&#xff08;Vue&#xff09;功能模块划分开发环境配置部署方案测试策略项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行…...

肽质量指纹图谱提取区域检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]【完整源码+数据集+部署教程】

一、背景意义 在生物医学研究和药物开发领域&#xff0c;肽作为生物活性分子的关键组成部分&#xff0c;受到越来越多的关注。肽质量指纹图谱的提取与分析&#xff0c;能够为新药的发现、疾病的诊断及生物标志物的筛选提供重要的信息。然而&#xff0c;传统的肽质量指纹图谱分析…...

Windows 本地部署 OpenClaw 超详细图文教程(保姆级)

本文以 PowerShell 一键部署 为核心方案&#xff0c;兼顾新手友好与稳定性&#xff0c;全程附操作说明与避坑要点&#xff0c;30 分钟内可完成部署。&#x1f4cb; 一、部署前准备&#xff08;必看&#xff09;1. 硬件与系统要求项目最低配置推荐配置说明系统Windows 10 64位&a…...

【C++算法入门】贪心算法-分糖果问题

本题取自LeetCode 135题 分糖果问题一 原题复现有n个小孩&#xff0c;每个小孩对应一个rating条件&#xff1a;每个小孩至少得到一颗糖&#xff0c;评分高的小孩要比相邻小孩多一颗糖求&#xff1a;最少需要多少糖二 思路分析本题利用贪心算法&#xff0c;需要两次遍历贪心。…...

OpenClaw 在 Ubuntu 22.04.5 LTS 上的安装与问题处理记录

整理说明&#xff1a;本记录通过小龙虾OpenClaw依据本地记忆文件、历史会话记录和当前运行配置整理&#xff0c;重点保留可复用的安装步骤、故障现象、根因判断和解决办法。一、环境概况操作系统&#xff1a;Ubuntu 22.04.5 LTSOpenClaw 状态目录&#xff1a;/home/node/.openc…...

解锁细胞奥秘:BMKMANU Cell Marker

在单细胞测序和空间转录组学日益成为生命科学研究基石的今天&#xff0c;研究人员常常面临一个核心难题&#xff1a;我检测到的这群细胞究竟是什么类型&#xff1f; 面对海量的基因表达数据&#xff0c;如何准确、快速地为细胞"贴上"正确的身份标签&#xff0c;成为制…...

基于深度强化学习的虚拟重联列车LQR自适应控制:理论、实现与代码详解

基于深度强化学习的虚拟重联列车LQR自适应控制:理论、实现与代码详解 摘要 虚拟重联(Virtual Coupling)作为下一代轨道交通的关键技术,通过无线通信实现列车之间的协同运行,大幅提升线路容量和运行效率。然而,虚拟重联列车组在运行过程中面临复杂的非线性动力学特性、时…...

RK3588 Linux系统GPIO口测试方法及自动化测试脚本

1、GPIO编号计算... 2 2、测试举例... 2 2.1 gpio_request申请导出相应的gpio. 2 2.2 gpio_direction_output 设置相应gpio为输出方向... 3 2.3 gpio_set_value 设置输出电平... 3 设置输出为高电平... 3 设置输出为低电平... 3 2.4 gpio_get_value 获取gpio当前状态值…...

KA品牌进化论

凌克客服如何以八大核心能力&#xff0c;重构全域增长新范式2026年&#xff0c;中国电商行业进入存量博弈的深水区。流量成本持续攀升&#xff0c;平台规则日新月异&#xff0c;消费者对服务体验的要求水涨船高。对于年销售额千万级乃至亿级的KA品牌而言&#xff0c;单一维度的…...

中小企业为什么要重视业财一体化

一、业财一体化的核心定义与背景1. 什么是业财一体化业财一体化是指将企业的业务流程与财务管理深度融合&#xff0c;形成数据闭环管理的一种管理模式。 它通过打通业务系统与财务系统的数据孤岛&#xff0c;实现信息实时共享和协同运作。这种模式不仅提升了企业运营效率&#…...

吃透HTTP及相关协议核心区别,从基础到进阶全覆盖

在后端开发、网络通信领域&#xff0c;HTTP协议及相关的传输层协议、加密方式、会话机制等&#xff0c;是面试高频考点&#xff0c;也是日常开发中避不开的基础知识点。很多开发者在实际工作中能熟练使用&#xff0c;但对其底层原理和核心区别一知半解&#xff0c;导致遇到问题…...

【C语言学习笔记】(1)

一&#xff0c;c语言总览。 1&#xff0c;c语言被选择的原因 c语言在嵌入式中为主要的高级汇编语言&#xff0c;可直接驱动大多数的多核心开发板。 嵌入式可以嵌入多种电子设备&#xff0c;帮助设备进行多种策略与行为。 由于嵌入式设备可能没有系统环境只能运行二进制机器…...

二十、Kubernetes基础-13-kubeadm-ha-kubernetes-deployment-guide-03-haproxy-keepalived

kubeadm 部署高可用 Kubernetes 集群完全指南&#xff08;三&#xff09;&#xff1a;HAProxyKeepalived 高可用负载均衡部署 作者&#xff1a;云原生架构专家 技术栈&#xff1a;Kubernetes 1.21, HAProxy, Keepalived, VRRP, 负载均衡 难度等级&#xff1a;★★★★★&#x…...