- 2020-12-27
- 23:39
- 网站与服务端
制作只有 4KB 大小的永久挂起程序
在我的网络配置中,部分 Docker 容器的服务需要用 Anycast 的方式实现高可用,例如 DNS。在之前的文章中,我的做法是,创建了一个 Busybox 容器运行 tail -f /dev/null 这条命令,永久挂起,不占用 CPU 也永远不会退出,来维持一份网络命名空间给服务程序和 BIRD 共享。 用人话说就是:我自己发明了一遍 Kubernetes 的 Pod。 我不使用 K8S,因为我的节点都是独立的,不组成集群,因此不使用 K8S 的集群功能,另外它的配置也比较复杂。 但是我转念一想,为了网络命名空间建一个 Busybox 容器好像有些大材小用,我还需要手动配置一个 Entrypoint。如果有一个极小的 Docker 镜像,唯一干的事情是等待,那就更好了。 方案一:直接用 Musl + 静态编译做一个¶ 最容易想到的方法就是写一个死循环的 C 程序,...