- 博客(928)
- 资源 (4)
- 收藏
- 关注
原创 k8s中svc的 CLUSTER-IP无法ping通排查思路以及kube-proxy使用的模式
负责维护 Service 的流量规则(iptables/IPVS)。是虚拟 IP(VIP),它不绑定到任何物理接口,仅用于流量转发。在 Kubernetes 中,Service 的。,则需要排查以下问题。以下是详细的排查思路和。,因为 Service 的。
2025-04-11 16:33:28
825
原创 k8s部署的机器或者网络中是否Flannel网络组件host-gw内核是否支持以及跨子网是否可以通信
host-gw 无法跨越路由器,需改用 VXLAN 或 WireGuard 后端。AWS/Azure 等云环境可能限制自定义路由,需确认 VPC 路由表支持。要确认当前系统内核是否支持 Flannel 的。host-gw 依赖主机间的路由转发,需确保。),但 host-gw 通常无需额外模块。极少数情况下需加载内核模块(如。
2025-04-11 15:21:38
332
原创 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
691
原创 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
690
原创 Flannel 的 VxLAN 模式下FDB表
查看 FDB表重启后就会这样在 Flannel 的 VxLAN 模式下,FDB(Forwarding Database)表项用于记录目标 MAC 地址与远端节点 IP 的映射关系。这些条目通常由 Flannel 自动维护,但在某些场景下(如网络异常或配置错误),可能需要手动添加或删除。以下是操作步骤:参数说明::目标节点的 接口 MAC 地址。:指定 VxLAN 接口。:目标节点的物理网络 IP(即 Node IP)。:表示操作对象是本地接口。:标记为永久条目(避免被自动清除)。
2025-04-11 15:11:51
257
原创 K8s抓包PodIP流量到另一个主机节点上的流量
在 Kubernetes 中抓取跨节点 Pod 的流量需要结合节点的网络命名空间和 CNI 插件的工作机制。如果流量经过主机的物理网卡(如。(如 Flannel)或。
2025-04-11 14:51:46
313
原创 K8s的网络插件Flannel的8472端口无法连接故障排查思路
通信,会导致跨节点 Pod 网络不通。当 Kubernetes 集群中使用 Flannel 的。在节点上确认 Flannel 是否监听。时,若节点间无法通过。
2025-04-11 14:46:31
472
原创 K8s不同节点的PodIp无法Ping通故障排查思路
若问题仍存在,考虑更换网络插件(如 Calico)或深入抓包分析流量路径。在 Kubernetes 集群中,不同节点的 Pod IP 无法互相。
2025-04-11 14:43:56
694
原创 Kubernetes Flannel有几种网络模式分别怎么通信
如果确认是隧道模式但跨节点不通,需继续排查防火墙、路由或 MTU 问题(参考之前的解决方案)。Flannel 的隧道模式通常由后端类型决定,常见的隧道模式后端包括。隧道模式会在节点上创建虚拟隧道接口(如。要确认 Flannel 是否工作在。,可以明确是否工作在隧道模式。
2025-04-11 14:28:42
521
原创 Calico隧道模式区别IP-in-IP和VXLAN 都是隧道模式有什么区别吗
都是 Calico 支持的隧道模式,用于在底层网络无法直接路由 Pod IP 时实现跨节点通信,但它们在封装方式、性能、兼容性等方面有显著区别。:在 Calico 中,IP-in-IP 和 VXLAN 不能同时启用,需根据需求选择一种隧道模式。如果底层网络支持 BGP,建议直接使用。
2025-04-11 14:24:39
354
原创 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
302
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
586
原创 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
477
原创 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
612
2
原创 Vue2中使用CodeMirror 实现JSON编辑器
将如下代码封装成JsonEditor组件 可以使用如下方式调用通过定义的getValue获取json值
2024-06-04 14:23:09
1023
原创 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
536
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
546
原创 Kubernetes各个组件的作用
功能:Master组件提供了集群的全局性决策(如调度)和集群事件的检测和响应;而Node组件则负责维护运行的Pod,并提供Kubernetes运行环境。Master组件通常部署在集群中的主节点上,而Node组件则部署在每个节点上。组件负责集群的管理和控制,如资源的调度、集群状态的监控等;组件负责运行应用容器,执行来自Master组件的指令。
2024-05-22 16:54:11
371
原创 Kubernetes 中如何获取客户端真实 IP
Kubernetes 依靠 kube-proxy 组件实现 Service 的通信与负载均衡。在这个过程中,由于使用了 SNAT 对源地址进行了转换,导致 Pod 中的服务拿不到真实的客户端 IP 地址信息。本篇主要解答了在 Kubernetes 集群中负载如何获取客户端真实 IP 地址这个问题。
2024-04-16 16:44:17
610
原创 k8s 给服务设置https访问
利用证书申请下来的公钥和私钥 创建 secret 密钥。配置 ingress https 访问。编辑 Ingress 配置文件。
2024-04-16 15:13:11
470
原创 k8s运维之清理磁盘
注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的。: 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及。:所有镜像占用的空间,包括拉取下来的镜像,和本地构建的。:运行的容器占用的空间,表示每个容器的读写层的空间。然后就是docker exec -it 进去看看喽。:镜像构建过程中产生的缓存空间(只有在使用。最后反馈给开发,不用往本地目录里打日志文件了。: 清理得更加彻底,可以将没有容器使用。:容器挂载本地数据卷的空间。可以看到每次容器的size。
2024-04-16 14:54:48
270
原创 一线运维常见的工具推荐
开源搜索和分析引擎,与Kibana和Logstash结合用于日志分析。- 开源容器编排系统,用于自动化容器化应用程序的部署、扩展和管理。- 基于Python的自动化工具,用于配置管理和应用程序部署。- 开源的日志管理和分析平台,用于搜索、分析和可视化日志数据。- Netflix开源的故障注入工具,用于测试系统的弹性。- Google开源的容器监控工具,用于分析容器资源使用。- 可扩展的对象存储服务,用于存储和检索任意类型的数据。- Nagios的分支,提供更现代的监控和报警功能。
2024-04-16 14:27:02
452
原创 Linux 系统性能优化
free –m”表示以 M为单位查看内存使用情况,在这个输出中,我们重点关注的应该是 free 列与 cached 列的输出值,由输出可知,此系统共 8G 内存,系统空闲内存还有925M,其中,Buffer Cache 占用了 243M,Page Cache 占用了 6299M,由此可知系统缓存了很多的文件和目录,而对于应用程序来说,可以使用的内存还有 7468M,当然这个 7468M 包含了 Buffer Cache 和 Page Cache 的值。所以从应用的角度来说,此系统内存资源还非常充足。
2024-04-16 14:23:31
312
原创 Kubernetes的五大开源存储项目
在Kubernetes中,关于数据的持久化管理是一种挑战,对此,社区提供了多种存储的解决方案,这些方案旨在简化和优化容器化应用程序的持久化数据管理。本文将介绍 Kubernetes 的五大开源存储项目,带你了解开源存储解决方案的多种优势。01。
2024-04-16 14:17:41
494
原创 追踪 Kubernetes 中的 DNS 查询
在过去的文章中,我们曾 追踪过 Kubernetes 中的网络数据包[1],这篇文章将追踪 Kubernetes 中的 DNS 查询。让我们以在 Pod 中解析 Service 完全限定域名(FQDN)为例。在开始之前,先回顾下 DNS 的解析流程。
2024-04-16 13:57:57
949
原创 Linux 运维常见英文单词(二)
585. appropriate [əˈprəupri-it, əˈprəuprieit] a. 适当的,合适的。1572. reorganization [ˌri:ɔ:gənaiˈzeiʃən] vt. 重排,改组。437. demonstration [ˌdemənˈstreiʃən] n. (公开)表演,示范。1029. consideration [kənsidə'reiʃən] n. 考虑,研究,讨论。
2024-03-19 21:19:38
7082
原创 Linux 运维常见英文单词(一)
connection established 远程连接已建立。edit a connection 编辑设置网卡信息。configure/config 配置。begin install 开始安装。continue 下一步/继续。cancel 取消 /中断。inactive 不可用的。active 可用的/激活。disenable 关闭。directory 目录。reboot 重新启动。shutdown 关闭。control 控制。list 列表/展示。scripts 剧本。
2024-03-19 21:17:59
330
原创 ansible 建立ssh信任并分发到各个机器
如果你使用Ansible来管理多个机器,你可以在Ansible的清单文件(通常是/etc/ansible/hosts)中定义所有要管理的远程机器。运行该剧本后,Ansible将连接到每个远程机器,并将公钥添加到相应用户的~/.ssh/authorized_keys文件中。将公钥分发到各个机器:接下来,你需要将公钥分发到所有要管理的远程机器上。在上面的剧本中,你需要将替换为实际的用户名,并将/path/to/local/id_rsa.pub替换为本地公钥文件的路径。
2024-02-18 21:17:00
888
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
2023-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人