2025年6月21日

摘要: intro 从内核的代码可以看到,namespace是在进程创建的时候创建,没有进程引用namespace的时候销毁。反过来说:namespace的创建要依赖进程的创建,不创建进程就没办法创建namespace。 那么这个触发创建namespace的进程从哪里来?特别是POD这种k8s引入的容器的容 阅读全文
posted @ 2025-06-21 19:49 tsecer 阅读(1) 评论(0) 推荐(0)

2025年5月28日

摘要: intro 接触过docker的人都都会听说过,docker的是建立在namespace、cgroup、unionfs三个基础功能之上的。 namespace是linux内核中支持容器化的一个重要组成部分,也就是说:创建容器的时候必定会调用系统调用(syscall)来创建新的namespace。 因 阅读全文
posted @ 2025-05-28 21:30 tsecer 阅读(7) 评论(0) 推荐(0)

2025年4月23日

摘要: intro 在k8s中,kubectl exec提供了登录特定容器的可观测方法。以前一直有一个印象:kubectl是通过RESTful API HTTP连接来实现,而kubectl的tty操作必然需要长连接。 这个功能是如此的重要以至于会让人忍不住思考:它是如何实现的? k8s官方网站的Contai 阅读全文
posted @ 2025-04-23 21:11 tsecer 阅读(5) 评论(0) 推荐(0)

2025年3月22日

摘要: intro 大部分“现代”语言都支持自动内存回收(garbage collection),也支持反射(reflection)。go作为一种新出现的语言自然也不例外。 lua、Python作为动态语言,类型信息就保存在对象中,这也是动态语言可以动态添加字段/执行函数的基础。 golang作为C语言的广 阅读全文
posted @ 2025-03-22 18:06 tsecer 阅读(5) 评论(0) 推荐(0)

2025年3月8日

摘要: intro 在之前的测试中,如果严格限制了所有SNAT的源修改为特定IP+PORT,将所有发往本机137.0.01:8080的tcp都SNAT到127.0.0.1:40000端口。 tsecer@harry: sudo iptables -t nat -A POSTROUTING -p tcp -d 阅读全文
posted @ 2025-03-08 18:09 tsecer 阅读(18) 评论(0) 推荐(0)

2025年2月19日

摘要: intro k8s网络重度依赖了linux的iptables。在iptables提供的功能中,网络地址转换(NAT—Net Address Translation)又是一个重要的功能:当POD中的container需要访问集群外的网络时,就可能需要进行源地址转换(SNAT/MASQUERADE)。 阅读全文
posted @ 2025-02-19 21:11 tsecer 阅读(39) 评论(0) 推荐(0)

2025年1月7日

摘要: intro go作为一个新生的语言,跟C++相比提供了更多的易用性,但是对(习惯了C++的)新手来说这种便利也封装了更多的细节。一个基本的问题是:C++工程通常基于Makefile/CMake/bazel等外部工具进行构建,但是go的构建通常只需要使用go build或者go install这样的单 阅读全文
posted @ 2025-01-07 18:05 tsecer 阅读(297) 评论(0) 推荐(0)

2025年1月6日

摘要: intro 作为一个分布式虚拟化系统,网络在k8s中有重要意义。不同node上pod如何基于网络进行通讯是一个需要解决的基本/重要问题。在k8s的Networking and Network Policy中提到了常用的网络策略。其中的列表显然是按照字典序(而不是使用频率)排列,其中提到了比较常用的f 阅读全文
posted @ 2025-01-06 21:10 tsecer 阅读(37) 评论(0) 推荐(0)

2025年1月3日

摘要: intro 由于k8s中的部署是声明式的:为了满足部署的需求,pod可以动态的销毁/创建/迁移等。这种飘忽不定的生命期就导致了具体提供服务的pod的IP地址(cluster ip)随之经常变化。 为了解决这个问题,k8s使用的是和DNS类似的思路,通过内部DNS服务来解决这个问题:尽管提供服务器的p 阅读全文
posted @ 2025-01-03 20:53 tsecer 阅读(156) 评论(0) 推荐(0)

2024年12月21日

摘要: intro 移动端的设备的应用被切到后台之后,可能就无法收到对方socket关闭连接的FIN。当应用从后台切回前台之后,可能还是继续通过这个socket来尝试向对方一个已经不存在的socket发送数据。 这种情况下,该应用网络层将会经历怎样的波折呢? 接收方 如果报文指定的socket不存在,流程会 阅读全文
posted @ 2024-12-21 17:27 tsecer 阅读(21) 评论(0) 推荐(0)

导航