文章预览
本文带大家一起来详细学习下 Go 中的优雅退出,由于文章过长,拆分成上下两篇,本文为下篇。 上篇: 《Go 程序如何实现优雅退出?来看看 K8s 是怎么做的——上篇》 K8s 的优雅退出 现在,我们已经掌握了 Go 中 HTTP Server 程序如何实现优雅退出,是时候看一看 K8s 中提供的一种更为优雅的优雅退出退出方案了😄。 这要从 K8s API Server 启动入口说起: https://github.com/kubernetes/kubernetes/blob/release-1.31/cmd/kube-apiserver/apiserver.go func main () { command := app.NewAPIServerCommand() code := cli.Run(command) os.Exit(code) } K8s API Server 启动入口代码非常简单,我们可以进入 app.NewAPIServerCommand() 查看更多细节: https://github.com/kubernetes/kubernetes/blob/release-1.31/cmd/kube-apiserver/app/server.go#L122 // NewAPIServerCommand creates a *cobra.Command object with default parameters func NewAPIServerCommand () * co
………………………………