ArthurChiao's Blog

Recent Posts

  • 2020-10-08

    [译] 《Linux 高级路由与流量控制手册(2012)》第九章:用 tc qdisc 管理 Linux 网络带宽

    译者序本文内容来自 Linux Advanced Routing & Traffic Control HOWTO (2012) ,这是一份在线文档(小书),直译为《Linux 高级路由与流量控制手册》。本文翻译第九章 Chapter 9. Queueing Disciplines for Bandwidth Management。这份文档年代略久,但 qdisc 部分整体并未过时,并且是我目前看过的内容最详实、可读性最好的 tc qdisc 教程。另外,看到 [1,2] 中几张 qdisc 图画的非常不错,形象直观,易于...

  • 2020-09-12

    Life of a Packet in Cilium: Discovering the Pod-to-Service Traffic Path and BPF Processing Logics

    Note: this post also provides aChinese version,but may update less timely as this one. Introduction Problem faced Purpose of this post Environments and configurations Other aspects Step 1: POD1 eth0: accessing a Service 1.1 ...

  • 2020-09-12

    Life of a Packet in Cilium:实地探索 Pod-to-Service 转发路径及 BPF 处理逻辑

    Note: this post also provides aEnglish version. 引言 面临的问题 本文目的 环境及配置信息 其他说明 Step 1: POD1 eth0 发送 1.1 访问 ServiceIP 1.2 确定目的 MAC 地址 1.3 进一步探究 Step 2: POD1 eth0 对端设备(lxcxx)BPF 处理 2.1 查看加载的 BPF 程序 2...

  • 2020-09-06

    [译] 大规模微服务利器:eBPF + Kubernetes(KubeCon, 2020)

    译者序本文翻译自 2020 年 Daniel Borkmann 在 KubeCon 的一篇分享:eBPF and Kubernetes: Little Helper Minions for Scaling Microservices,视频见油管。翻译已获得 Daniel 授权。Daniel 是 eBPF 两位 maintainer 之一,目前在 eBPF commits榜单上排名第一,也是 Cilium 的核心开发者之一。本文内容的时间跨度有 8 年,覆盖了 eBPF 发展的整个历史,非常值得一读。时间限制,Daniel 很多地...

  • 2020-09-04

    [译] 深入理解 Cilium 的 eBPF 收发包路径(datapath)(KubeCon, 2019)

    译者序本文翻译自 2019 年 DigitalOcean 的工程师 Nate Sweet 在 KubeCon 的一篇分享: Understanding (and Troubleshooting) the eBPF Datapathin Cilium。由于译者水平有限,本文不免存在遗漏或错误之处。如有疑问,请查阅原文。 译者序 1 为什么要关注 eBPF? 1.1 网络成为瓶颈 1.2 eBPF 无处不在 1.3 性能就是金钱 2 eBPF 是什么? 3 为什么 eBPF ...

  • 2020-08-17

    Cilium Code Walk Through: ClusterMesh

    This post walks through the ClusterMesh implementation in cilium.Code bases on 1.8.2.This post belongs toCilium Code Walk Through Series. 1 Daemon start: bootstrapClusterMesh() 2 Create clustermesh: NewClusterMesh() 2.1 Watch config directory 2.2 New ...

  • 2020-08-13

    Cilium ClusterMesh: A Hands-on Guide

    TL;DR 1 Introduction 1.1 Cilium-powered k8s cluster 1.2 Multi-cluster scenarios (why multi-cluster?) 1.3 Cross-cluster accessing models 1.4 Where clustermesh is needed 2 Test environment 3 ClusterMesh setup 3.1 Configuratio...

  • 2020-08-09

    Connection Tracking (conntrack): Design and Implementation Inside Linux Kernel

    Note: this post also provides aChinese version. Abstract 1 Introduction 1.1 Concepts 1.2 Thoery 1.3 Design: Netfilter 1.4 Design: further considerations 1.5 Use cases 1.5.1 Network address translation (NAT) ...

  • 2020-08-05

    连接跟踪(conntrack):原理、应用及 Linux 内核实现

    This post also provides an English version. 摘要 1 引言 1.1 概念 1.2 原理 1.3 设计:Netfilter 1.4 设计:进一步思考 1.5 应用 1.5.1 网络地址转换(NAT) 四层负载均衡(L4LB) 1.5.2 有状态防火墙 ...

  • 2020-07-15

    [译] 星巴克不使用两阶段提交(2004)

    译者序本文翻译自 2004 年的一篇文章: Starbucks Does Not Use Two-PhaseCommit.由于译者水平有限,本文不免存在遗漏或错误之处。如有疑问,请查阅原文。 译者序 1 请给我一杯热巧克力(Hotto Cocoa o Kudasai) 2 关联(Correlation) 3 异常处理(Exception Handling) 3.1 销账(Write-off) 3.2 重试(Retry) 3.3 补偿(Compensating Action) ...