k8s debug cli 最初版

一次偶然的机会看到了这篇文章 《简化 Pod 故障诊断: kubectl-debug 介绍》,感觉这个实现挺有意思的,准备自己实现一个。这里借鉴了文章中工具的大体设计思路以及获取容器 ID 的方式,其他的大体都是自己思考和实现的,同时,实现的功能比较粗糙,比如诊断容器写死为 busybox、只能进入 exec -it 风格的交互模式等、数据传输过程未加密、执行加入 Pod 中第一个容器的命名空间、容器运行时只能使用 docker 不兼容 containerd 等。

Read More

kubebuilder 构建 deployment + service

参(抄)考(袭) [https://github.com/cnych/opdemo]

目前我对于 CRD 以及自定义 Operator 的理解是,利用 Kubernetes 已有的资源,例如 Deployment、Service、Pods 通过组合构建出更加复杂的应用。就像是这个 appservice-operator 一样,利用 Deployment + Service 构建出了一个 AppService 资源,这样在部署的时候不用分别部署 Deployment 和 Service,而是直接部署 AppService 即可。下面简述一下 AppService Operator 构建的过程。

代码仓库 https://github.com/schwarzeni/kubebuilder-appservice

Read More

wait & waitpid 有什么用

2021.4.6 字节实习一面,面试官在考察我操作系统知识时,在我回答“父进程调用 wait 可以防止子进程僵尸进程出现” 后,追问我 “那操作系统为什么要这么设计,而不是在子进程退出之后就直接将其视为退出,而不是僵尸进程”。当时没答出来,面试结束后我查阅了相关的资料,对 wait 有了进一步的了解。

Read More