- 博客(936)
- 资源 (4)
- 收藏
- 关注
原创 k3s环境单节点,物理机ip是172.10.15.209,serverpod开启了主机网络, clientpod的ip10.42.0.58,cni0的ip是10.42.0.1/24
当在k3s单节点环境中,从主机网络模式的Server Pod(172.10.15.209)ping Client Pod(10.42.0.58)时,抓包显示源IP为cni0网桥IP(10.42.0.1)而非物理机IP,这是正常现象。原因是: 内核路由机制会将同一节点Pod间通信的源IP自动设为cni0网桥IP(10.42.0.1),因为目标IP属于cni0直连网段; 网络包流转路径为:Server Pod→宿主机路由→cni0网桥→Client Pod; 这种设计优化了回包路径,使Client Pod可直接
2025-06-24 16:53:00
696
原创 Pod的中执行脚本卡死定位
Kubernetes环境中排查Pod脚本卡死问题需要系统化方法:先通过kubectl检查Pod状态和日志,监控资源使用;进入容器用ps/top分析进程,或用strace/gdb追踪系统调用和堆栈;检查探针配置和节点资源压力。建议增强脚本健壮性(如超时控制、错误捕获)、合理设置资源限制,并集成监控告警系统(如Prometheus)。最终可通过临时容器或压力测试进一步诊断复现问题。
2025-06-24 09:40:21
418
原创 Linux定位具体是哪个脚本导致卡死
通过以上方法,通常可以定位到具体卡死的脚本及其原因。如果问题仍然难以复现,可以考虑在开发环境中模拟生产环境条件,逐步缩小问题范围。
2025-06-24 09:37:00
242
原创 docker过一段时间就会卡死原因排查
Docker容器中运行Shell脚本卡死,可能由资源不足(如内存、CPU、文件描述符)、系统兼容性问题(内核或安全模块限制)、脚本缺陷(死循环、资源泄漏)或Docker配置不当(版本/存储驱动)导致。排查需监控容器资源、检查系统日志、验证脚本逻辑及Docker配置。解决方法包括调整资源配额(如内存限制)、优化脚本(添加超时控制)、更新系统/Docker版本、调整安全策略或更换存储驱动。建议增强脚本健壮性(如使用set -euo pipefail)、配置容器健康检查并建立监
2025-06-24 09:35:10
487
原创 docker执行docker exec -it xxx /bin/sh卡死执行alpine的基础镜像卡死排查
摘要(148字): docker exec卡死问题通常由内核兼容性、资源限制或架构特性引发。可通过检查系统版本/Docker版本、分析容器状态与日志(如journalctl、docker inspect)定位问题,重点排查PID命名空间异常或安全模块(SELinux/AppArmor)冲突。解决方案包括:更新内核/Docker版本、调整daemon.json配置(如存储驱动改为overlay2)、使用--privileged模式测试。临时替代方案推荐nsenter命令或设置超时参数。对于ARM64架构需特别
2025-06-24 09:30:28
318
原创 kube-proxy日志,使用的是ipvs模式,iptables模式是可以的,切换到ipvs模式就不行了解决思路
摘要: 针对IPVS模式下IPv4地址被错误解析为IPv6格式的问题(parseIP Error),根本原因可能是双栈配置冲突、kube-proxy版本缺陷或内核模块缺失。解决方案包括:1)禁用IPv6双栈配置,2)加载IPVS内核模块,3)升级kube-proxy至v1.23+版本,4)清理异常IPVS规则并重建,5)验证CNI插件兼容性。辅助操作包括检查Service端点、测试NodePort访问及内核日志。如问题持续,可临时回退至iptables模式定位问题,最终需确认环境配置与组件版本兼容性。
2025-05-27 11:03:21
449
原创 kube-proxy使用ipvs和iptables模式的区别
Kubernetes 中 kube-proxy 的 IPVS 和 iptables 模式对比:IPVS 基于 L4 负载均衡技术,适合大规模集群,支持多种调度算法,性能优异但需加载内核模块;iptables 兼容性好,适合小规模集群,可与 NetworkPolicy 深度集成但性能随规则增长下降。生产环境推荐 IPVS,小规模集群或需精细流量控制时可选 iptables。切换需注意内核兼容性和 Kubernetes 版本要求。
2025-05-27 10:50:57
680
原创 k8s中svc的 CLUSTER-IP无法ping通排查思路以及kube-proxy使用的模式
负责维护 Service 的流量规则(iptables/IPVS)。是虚拟 IP(VIP),它不绑定到任何物理接口,仅用于流量转发。在 Kubernetes 中,Service 的。,则需要排查以下问题。以下是详细的排查思路和。,因为 Service 的。
2025-04-11 16:33:28
1185
原创 k8s部署的机器或者网络中是否Flannel网络组件host-gw内核是否支持以及跨子网是否可以通信
host-gw 无法跨越路由器,需改用 VXLAN 或 WireGuard 后端。AWS/Azure 等云环境可能限制自定义路由,需确认 VPC 路由表支持。要确认当前系统内核是否支持 Flannel 的。host-gw 依赖主机间的路由转发,需确保。),但 host-gw 通常无需额外模块。极少数情况下需加载内核模块(如。
2025-04-11 15:21:38
458
原创 k8s网络组件flannel的mac地址重复解决以及会引起的问题
在 Kubernetes 集群中使用 Flannel 时,如果出现问题,通常是由于 Flannel 的 VXLAN 后端(或其他网络后端)配置不当或版本缺陷导致。如果多个节点的flannel.1接口的link/ether字段值相同,即存在重复。如果多个节点的 Pod 子网 IP 最后 4 字节相同(例如子网配置冲突),则 MAC 地址会重复。:旧版本 Flannel 存在 MAC 生成逻辑缺陷。:无法升级 Flannel 或需自定义配置。macPrefix:Flannel 子网分配重叠导致 MAC 重复。
2025-04-11 15:19:10
910
原创 k8s使用的是Flannel网络组件是vxlan模式,PodIP和其他节点PodIP无法通信请给出排查思路解决办法
逐项排查后,Pod跨节点通信应能恢复。如问题依旧,可结合Flannel日志和抓包结果深入分析。通常MTU应比物理网卡小50(如物理网卡1500,则flannel.1 MTU为1450)。确保节点间UDP 8472端口开放,防火墙(如ufw/iptables)未拦截。观察是否有封装后的VxLAN流量(目标端口8472)。确认VxLAN报文到达,并解封装转发到目标Pod。若缺失,可能是Flannel未能正确分发路由。,并分配了与其他节点不同的Vtep IP。通过以上步骤,多数问题可定位为。,且未配置错误参数。
2025-04-11 15:14:58
985
原创 Flannel 的 VxLAN 模式下FDB表
查看 FDB表重启后就会这样在 Flannel 的 VxLAN 模式下,FDB(Forwarding Database)表项用于记录目标 MAC 地址与远端节点 IP 的映射关系。这些条目通常由 Flannel 自动维护,但在某些场景下(如网络异常或配置错误),可能需要手动添加或删除。以下是操作步骤:参数说明::目标节点的 接口 MAC 地址。:指定 VxLAN 接口。:目标节点的物理网络 IP(即 Node IP)。:表示操作对象是本地接口。:标记为永久条目(避免被自动清除)。
2025-04-11 15:11:51
305
原创 K8s抓包PodIP流量到另一个主机节点上的流量
在 Kubernetes 中抓取跨节点 Pod 的流量需要结合节点的网络命名空间和 CNI 插件的工作机制。如果流量经过主机的物理网卡(如。(如 Flannel)或。
2025-04-11 14:51:46
407
原创 K8s的网络插件Flannel的8472端口无法连接故障排查思路
通信,会导致跨节点 Pod 网络不通。当 Kubernetes 集群中使用 Flannel 的。在节点上确认 Flannel 是否监听。时,若节点间无法通过。
2025-04-11 14:46:31
671
原创 K8s不同节点的PodIp无法Ping通故障排查思路
若问题仍存在,考虑更换网络插件(如 Calico)或深入抓包分析流量路径。在 Kubernetes 集群中,不同节点的 Pod IP 无法互相。
2025-04-11 14:43:56
1045
原创 Kubernetes Flannel有几种网络模式分别怎么通信
如果确认是隧道模式但跨节点不通,需继续排查防火墙、路由或 MTU 问题(参考之前的解决方案)。Flannel 的隧道模式通常由后端类型决定,常见的隧道模式后端包括。隧道模式会在节点上创建虚拟隧道接口(如。要确认 Flannel 是否工作在。,可以明确是否工作在隧道模式。
2025-04-11 14:28:42
587
原创 Calico隧道模式区别IP-in-IP和VXLAN 都是隧道模式有什么区别吗
都是 Calico 支持的隧道模式,用于在底层网络无法直接路由 Pod IP 时实现跨节点通信,但它们在封装方式、性能、兼容性等方面有显著区别。:在 Calico 中,IP-in-IP 和 VXLAN 不能同时启用,需根据需求选择一种隧道模式。如果底层网络支持 BGP,建议直接使用。
2025-04-11 14:24:39
502
原创 schedulerUnhealthyGet “http://127.0.0.1:10251/healthz“: dial tcp 127.0.0.1:10251: con
【代码】schedulerUnhealthyGet "http://127.0.0.1:10251/healthz": dial tcp 127.0.0.1:10251: con。
2024-11-30 20:38:51
350
1
原创 使用NVM管理多版本NodeJS,NVM安装使用教程
nvm-update.zip.checksum.txt:验证下载文件完整性的校验和文件 Source code(zip):zip压缩的源码。nvm-setup.zip.checksum.txt:验证下载文件完整性的校验和文件 nvm-update.zip:用于更新 Node。甚至可以复制这个路径到一边,后面配置环境要用!nvm-noinstall.zip.checksum.txt:验证下载文件完整性的校验和文件。nvm-setup.zip:安装包同上,只是使用了压缩,下载之后点击安装,无需配置。
2024-08-30 16:24:41
610
原创 nginx配置接口代理以及vue前端项目
proxy_pass http://192.168.26.145:9000 访问到后端接口就是 prod-api/xxx。proxy_pass http://192.168.26.145:9000/ 访问到后端接口就是 /xxx。
2024-07-11 17:17:12
502
原创 CentOS部署K3S单机版
Centos 7Docker-CE3.创建 daemon.json (启动k3s的时候也得加参数 cgroupdriver=systemd)4.k3s 安装所需文件5.下载安装包6.导入容器镜像7.将 K3s 安装脚本和 K3s 二进制文件移动到对应目录并授予可执行权限8.安装K3SINSTALL_K3S_SKIP_DOWNLOAD=true //禁用下载,离线安装必备。INSTALL_K3S_EXEC="(略)"效果为启动k3s服务时使
2024-07-03 15:59:08
719
2
原创 Vue2中使用CodeMirror 实现JSON编辑器
将如下代码封装成JsonEditor组件 可以使用如下方式调用通过定义的getValue获取json值
2024-06-04 14:23:09
1252
原创 k8s1.Pod是如何被分配的2.Pod是怎么和同主机上的Pod通信的3.Pod是怎么和不同节点上的Pod通信的4.Pod是如何与其他主机通信的5Pod是如何和当前主机通信的6.他们通信的时候调用的K
每个节点上的网络代理(如kube-proxy)会维护必要的路由规则,使数据包能够正确地从源Pod传输到目标节点上的目标Pod。分配的IP通常来源于预先定义好的Pod网络CIDR范围,并通过网络策略配置到节点上,确保网络可达。当Pod需要与集群外的主机通信时,其流量通常会通过节点上的网络栈(如NAT、SNAT规则)路由到外部网络。Pod与所在的节点主机上的应用或服务通信时,可以直接使用主机的环回地址(127.0.0.1)或主机的IP地址,并且使用相应的端口号。
2024-05-22 17:27:25
551
1
原创 k8s中创建Pod的流程
它从etcd中读取未被调度的Pod信息,并基于节点的资源可用性、硬件要求、Pod亲和性和反亲和性规则、数据局部性等因素,选择最适合运行该Pod的节点。Pod运行期间的状态变化(如Ready状态、终止状态)会被kubelet上报回kube-apiserver,最终更新到etcd中,这样集群的其他组件和服务(如kube-controller-manager、kube-proxy)就可以根据最新的状态信息作出响应。一旦所有准备工作完成,kubelet在该节点上创建并启动容器(们),执行Pod定义中指定的命令。
2024-05-22 17:22:31
582
原创 Kubernetes各个组件的作用
功能:Master组件提供了集群的全局性决策(如调度)和集群事件的检测和响应;而Node组件则负责维护运行的Pod,并提供Kubernetes运行环境。Master组件通常部署在集群中的主节点上,而Node组件则部署在每个节点上。组件负责集群的管理和控制,如资源的调度、集群状态的监控等;组件负责运行应用容器,执行来自Master组件的指令。
2024-05-22 16:54:11
388
原创 Kubernetes 中如何获取客户端真实 IP
Kubernetes 依靠 kube-proxy 组件实现 Service 的通信与负载均衡。在这个过程中,由于使用了 SNAT 对源地址进行了转换,导致 Pod 中的服务拿不到真实的客户端 IP 地址信息。本篇主要解答了在 Kubernetes 集群中负载如何获取客户端真实 IP 地址这个问题。
2024-04-16 16:44:17
633
原创 k8s 给服务设置https访问
利用证书申请下来的公钥和私钥 创建 secret 密钥。配置 ingress https 访问。编辑 Ingress 配置文件。
2024-04-16 15:13:11
503
原创 k8s运维之清理磁盘
注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的。: 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及。:所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。:运行的容器占用的空间,表示每个容器的读写层的空间。然后就是docker exec -it 进去看看喽。:镜像构建过程中产生的缓存空间(只有在使用。最后反馈给开发,不用往本地目录里打日志文件了。: 清理得更加彻底,可以将没有容器使用。:容器挂载本地数据卷的空间。可以看到每次容器的size。
2024-04-16 14:54:48
290
原创 一线运维常见的工具推荐
开源搜索和分析引擎,与Kibana和Logstash结合用于日志分析。- 开源容器编排系统,用于自动化容器化应用程序的部署、扩展和管理。- 基于Python的自动化工具,用于配置管理和应用程序部署。- 开源的日志管理和分析平台,用于搜索、分析和可视化日志数据。- Netflix开源的故障注入工具,用于测试系统的弹性。- Google开源的容器监控工具,用于分析容器资源使用。- 可扩展的对象存储服务,用于存储和检索任意类型的数据。- Nagios的分支,提供更现代的监控和报警功能。
2024-04-16 14:27:02
460
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
2023-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人