- 博客(1056)
- 资源 (57)
- 问答 (5)
- 收藏
- 关注
原创 linux dd命令详解
dd(data duplicator)是一个低级工具,可以从输入源(如文件、设备或标准输入)读取数据,并将其写入输出目标(如文件、设备或标准输出)。它的灵活性使其适用于多种场景,如创建固定大小的文件、备份磁盘、转换数据格式等。由于其直接操作字节流的特性,使用时需谨慎,以免覆盖重要数据。dd是一个功能强大但需谨慎使用的工具,适合低级别数据操作。在 macOS 上,核心功能与 Linux 一致,但需注意设备路径、权限和进度显示的差异。通过合理设置bs和count,可以高效完成文件创建、备份等任务。
2025-07-26 09:48:10
1998
原创 runc源码解读(一)——runc create
解析配置,准备 rootfs、挂载、cgroup、namespace、网络、用户等环境创建并启动 init 进程(但不运行用户命令)init 进程阻塞等待,容器进入 Created 状态写入 state.json,记录容器元数据等待runc start启动用户进程让你可以在容器真正运行前,做更多自定义操作和调试,精细控制容器生命周期。
2025-07-24 21:31:53
501
原创 istio-proxy用哪个端口代理http流量的?
在 Istio 中,(基于 Envoy)代理 HTTP 流量的端口取决于具体配置和服务类型。以下是以 Markdown 格式整理的详细说明,涵盖 如何处理 HTTP 流量以及相关端口信息: 使用 iptables 规则 或 直接配置 来拦截和代理应用的流量。HTTP 流量的代理端口通常包括以下几种情况:出站流量(Outbound):入站流量(Inbound):服务定义的端口:可以通过以下方法查看 代理 HTTP 流量的具体端口:在 容器中运行以下命令,查看 Envoy 监听的端口:或使用更现代的
2025-07-23 14:02:52
1384
原创 istio如何自定义重试状态码
4xx 状态码:涵盖 400-451,常见如 400、401、403、404、409、429 等。Istio 重试:默认不重试 4xx,可通过配置 401、408、409、429 等为可重试。推荐:仅在明确业务场景(如 429 限流、401 凭证刷新)下配置 4xx 重试,并确保与应用程序逻辑协调。
2025-07-17 18:39:42
1056
原创 Go 语言中的接口实现检查:`var _ Interface = &Struct{}` 详解
简单有效:一行代码就能完成接口实现检查编译时安全:及早发现接口实现问题零开销:不影响运行时性能广泛使用:在 Go 生态系统中被广泛采用。
2025-07-03 09:10:37
630
原创 containerd 项目主要目录简要说明
目录主要作用典型内容/用途clientGo 客户端 APIgRPC 封装、API 调用cmd命令行工具主程序和命令实现containerd、ctr、shim 等core核心业务逻辑和数据结构镜像、内容、快照、元数据等internal仅供项目内部使用的工具和辅助代码工具包、内部实现细节pkg可复用的通用工具包labels、mount、archive、seccomp等plugins插件实现,各类服务的扩展机制local/remote/proxy等多种插件实现。
2025-07-02 22:15:23
370
原创 gin如何返回html
适合页面模板渲染场景。你可以定义 HTML 模板文件,然后将数据传递给模板。这种方式适合简单场景,比如返回一段固定的 HTML 内容。
2025-07-02 14:41:11
339
原创 istio-proxy报错、启动慢如何解决
istio-proxy启动报错,启动慢一般是节点时间不一致导致的,此时需要检查集群master节点、istiod所在节点、pod所在节点是否一致,如果不一致,需调整一致。
2025-07-02 14:12:41
266
原创 使用 ttrpc 实现高效的进程间通信(附 Go Demo)
ttrpc是一个基于 Protobuf 的简化 RPC 框架,主要用于容器运行时如containerd与其shim之间的通信。相比 gRPC,它去除了 TLS、多路复用、流式接口等复杂功能,专注于在同主机中通过 UNIX socket 进行高性能通信。创建文件ttrpc更快:无 HTTP/TLS 负担更轻:简单 protobuf 实现更专注:适用于容器生命周期控制等场景。
2025-06-24 14:38:32
474
原创 深入分析 Kubernetes Webhook 报错 “the server could not find the requested resource“ 的根因与解决方案
Kubernetes 中 Webhook 报错 “the server could not find the requested resource” 通常是由于Webhook 配置中的path未设置或与服务监听路径不一致导致的。只需明确设置并确保服务监听对应路径,便可轻松解决。掌握此类错误的原理与排查技巧,有助于构建更健壮、可靠的 Kubernetes 扩展逻辑。
2025-06-05 15:22:13
1569
原创 Go语言中flag包的用法详解
flag包会自动生成帮助信息,用户可以通过-h或--help查看。可以通过flag.Usage自定义帮助信息。import ("flag""fmt""os"// 自定义帮助信息通过实现flag.Value接口,可以定义自定义类型的标志。例如,定义一个接收逗号分隔的字符串列表的标志。import ("flag""fmt""strings"// 自定义类型return nilGo语言的flag包提供了一种简单而强大的方式来处理命令行参数。通过flag.Int等方法定义标志,使用。
2025-05-29 22:47:23
1315
原创 在容器里运行go程序报错:/bin/sh: ./manager: not found
在 ARM 架构的容器中运行 Go 程序时,错误通常由动态链接二进制的依赖缺失引起。通过在编译时设置,可以生成静态链接的二进制文件,彻底解决容器环境中的依赖问题。本文提供的解决方案通过静态编译和精简镜像(如scratch)实现了可靠的部署,同时分享了调试动态链接二进制的备用方法。对于 ARM 架构的容器化部署,静态链接是推荐的最佳实践,不仅简化了部署流程,还提高了跨环境的可移植性。
2025-05-29 17:39:59
1342
原创 Flannel 支持的后端
Flannel 支持的后端包括VXLAN(推荐)、host-gw(高性能但受限于二层网络)、UDP(仅用于调试)、WireGuard(加密通信)、AWS-VPCGCEAliVPC(实验性)、Alloc和IPIP(实验性)。此外,IPSec已废弃。选择后端时需根据网络环境、性能需求和安全性要求进行权衡。
2025-05-29 08:36:57
1236
原创 linux如何查看网络设备类型
参数会显示设备的详细信息,包括类型。例如,输出中可能包含。运行该命令后,查看输出中网络设备的名称和类型。文件不存在,可能是非 TUN/TAP 设备。Linux 系统中网络设备的信息存储在。是具体的网络接口名(如。输出会显示驱动信息。
2025-05-27 09:06:17
923
原创 Linux中TUN设备的详细讲解
TUN设备是Linux内核中一种虚拟网络设备,用于实现用户态与内核态之间的网络数据交互。它广泛应用于虚拟私人网络(VPN)、网络虚拟化、隧道技术等领域。以下是对TUN设备的详细讲解,包括其定义、功能、工作原理、使用场景及相关操作。TUN(Tunnel)设备是一种虚拟网络接口,运行在Linux内核的网络协议栈中。它不对应物理硬件,而是通过软件模拟网络接口的行为。TUN设备的主要作用是在用户态程序和内核网络协议栈之间建立一个“隧道”,允许用户态程序直接处理网络数据包。简单来说:TUN设备本质上是一个字符设备()
2025-05-23 08:40:22
1674
原创 Linux `nc` 命令详细讲解
nc(netcat)是一个命令行工具,用于建立网络连接、传输数据或进行网络调试。它支持多种协议(TCP、UDP,甚至某些版本支持 Unix 域套接字),可以用于端口扫描、文件传输、简单的服务器搭建、反向 shell 等场景。nc是一个简单而强大的工具,适用于网络调试、数据传输、端口扫描等多种场景。通过灵活使用其选项和管道功能,可以实现从简单聊天到复杂反向 shell 的多种功能。建议熟悉具体版本的选项差异,并在安全环境中谨慎使用。如需更复杂的功能,可考虑使用socat或ncat替代。
2025-05-22 10:31:07
3363
原创 Telnet 用法详细讲解
Telnet(Telecommunication Network)允许用户通过命令行与远程主机建立交互式会话,默认使用 TCP 端口 23。由于其数据传输未加密,安全性较低,常被 SSH 替代,但在调试网络服务或内部网络中仍有用。Telnet 是一个简单但功能强大的工具,适用于 TCP 服务的远程登录和调试。通过Ctrl+]进入命令模式并输入quit可轻松退出会话。若退出失败,可强制终止进程或检查服务状态。Telnet 不支持 UDP,需使用 Netcat 或 Nmap 替代。安全场景下推荐 SSH。
2025-05-22 10:29:36
13548
原创 Flannel后端为UDP模式下,分析数据包的发送方式——tun设备(三)
是什么,结合 Kubernetes 和 Flannel UDP 模式的背景,阐明其作用和原理。的核心组件,常用于 VPN、隧道技术(如 Flannel、OpenVPN)和网络虚拟化场景。TUN 设备可以看作一个“管道”,一端连接内核的网络协议栈,另一端连接用户态程序(如。在 Kubernetes 环境中,Flannel 使用 UDP 模式时,(Tunnel 设备)是 Linux 系统中一种虚拟网络接口,工作在。在 Flannel UDP 模式中,TUN 设备(),我们分析 TUN 设备(
2025-05-22 08:57:13
1346
原创 Flannel后端为UDP模式下,分析数据包的发送方式(二)
在 Kubernetes 环境中,使用 Flannel 的 UDP 模式,数据包的目标 IP。,因为 Flannel UDP 模式将数据包封装为 UDP 格式后,通过物理网络接口。答案是肯定的,我们从 Flannel UDP 模式的工作机制来详细分析。,结合 Kubernetes 和 Flannel UDP 模式的背景。,工作在用户态,负责将数据包交给 Flannel 的用户态进程(但问题是,数据包是否最终会经过物理网卡。在 Flannel 的 UDP 模式下,的数据包最终会经过物理网卡。
2025-05-21 22:49:02
1081
原创 Flannel后端为UDP模式下,分析数据包的发送方式(一)
这是一个网络地址(而不是主机地址),在实际网络中通常不会直接作为网关使用。这可能是一个配置问题或特殊网络环境(如 Kubernetes 的 Flannel 网络)。通常是 Flannel 网络的虚拟接口,数据包会通过 Flannel 的隧道机制转发到目标 Pod 所在的节点。进入 Flannel 的隧道(例如 VXLAN),由 Flannel 网络插件负责转发到目标节点。Linux 内核在处理数据包时,会根据路由表选择最合适的路由规则。是一个虚拟网络接口,用于处理 Pod 之间的通信。
2025-05-21 22:28:12
792
原创 容器网络中的 veth pair 技术详解
在 Linux 容器网络中,veth pair(Virtual Ethernet Pair)是一种虚拟网络设备,用于在不同的网络命名空间(Network Namespace)之间建立通信。它本质上是一对虚拟网卡,类似于一个管道,两端分别连接到不同的网络命名空间,数据从一端发送会从另一端接收。veth pair 是实现容器网络(如 Docker、Kubernetes)的基础技术之一,常用于桥接网络模型。
2025-05-21 21:19:42
735
原创 详解ip地址、子网掩码、网关、广播地址
IP 地址:设备的网络标识,用于定位和通信。子网掩码:划分网络和主机部分,定义子网范围。网关:连接不同网络的出口,负责跨子网或外部通信。广播地址:用于子网内广播通信,简化网络发现和服务请求。
2025-05-20 22:13:33
1452
原创 Nacos数据写入流程
核心步骤:客户端请求 → Leader 日志记录 → 日志复制到 Follower → 多数节点确认 → 日志提交 → 数据应用(MySQL + 本地磁盘)→ 响应客户端。一致性保证:Raft 协议确保数据在大多数节点上达成一致,即使少数节点(1/3)宕机,集群仍可正常工作。数据存储MySQL:中心化存储,保存所有配置数据,节点通过 Raft 协议协调写操作。本地磁盘:缓存全量数据,提升读取性能,定期或事件触发时与 MySQL 同步。数据写入流程。
2025-05-18 15:05:46
1293
原创 Volcano 在 Kubernetes 生态中的介绍
Volcano 是 Kubernetes 生态中一个强大的批处理调度系统,通过高级调度算法、异构设备支持和多框架集成,解决了 Kubernetes 在处理高性能工作负载时的局限性。它简化了集群管理,提高了资源利用率和调度效率,特别适合需要大规模计算的 AI、大数据和 HPC 场景。如果你在 Kubernetes 上运行复杂批处理任务,Volcano 是一个值得探索的工具。如需进一步了解,可访问 Volcano 官网(
2025-05-16 09:29:10
1497
原创 VTEP是什么
定义:VTEP 是 VXLAN 网络中负责封装和解封装流量的隧道端点。功能:封装/解封装以太网帧、MAC 地址学习、BUM 流量处理、网络分段。实现:可以是软件(如 OVS、Flannel)或硬件(如支持 VXLAN 的交换机)。应用:广泛用于数据中心、Kubernetes 和跨地域二层网络。一句话总结:VTEP 是 VXLAN 的“网关”,通过 UDP 隧道在三层网络上实现虚拟二层通信,是 VXLAN 网络虚拟化的核心。
2025-05-15 22:34:02
1849
原创 Calico的特点
性能最佳:BGP 模式(非覆盖,零开销),适合支持 BGP 的本地或企业网络。灵活性最高:IP-in-IP(跨子网模式,低开销),适合公有云或跨 L3 网络。兼容性最佳:VXLAN(无需 BGP,高隔离),适合 Azure 或复杂网络。安全性最高:WireGuard(加密通信,高开销),适合安全敏感场景。开销对比无开销:BGP(0% 带宽)。低开销:IP-in-IP(2-5% 带宽)。中开销:VXLAN(5-10% 带宽)。高开销:WireGuard(10-20% 带宽)。
2025-05-14 00:03:57
731
原创 Flannel UDP 模式的优缺点
UDP 模式的优势在于高兼容性,适合旧内核或测试环境,但性能差、高 CPU 开销使其不适合生产。跨节点通信通过用户态flanneld进程以 UDP 协议封装数据包,依赖 etcd 动态管理节点映射,通信效率低于 VXLAN(内核态)和 host-gw(无封装)。
2025-05-13 23:31:00
1003
kibana-6.4.2-linux-x86_64
2018-10-22
kibana-6.4.2-x86_64
2018-10-22
kibana-6.4.2-windows-x86_64
2018-10-22
OBS-Studio
2018-12-22
FiddlerSetup.zip
2019-07-16
centos7修改语言环境支持中文总失败
2018-03-24
struts2 Session生命周期
2017-12-14
php创建类的方法 php菜鸟一枚 请问这行代码是什么意思?
2017-05-01
Android中如何无损保存BitMap文件?
2017-03-10
Java如何调用打印机打印本地文档
2016-09-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅