【发布时间】:2021-11-30 23:03:09
【问题描述】:
我已经在 GKE 中部署了 prod 10+ java/js 微服务,一切都很好,没有使用外部卷,它是生成新图像、推送到容器注册表以及将应用程序升级到新版本时的一个简单过程,只需使用新映像部署新部署,并升级使用滚动更新的 pod。
我的问题是 Common Lisp 应用程序会是什么样子?该语言的主要好处是可以在运行时更改代码。配置.lisp 文件是否应该作为 ConfigMap 附加? (对 ConfigMap 的更新仍然需要重新创建 pod 以应用新的 ConfigMap 更改)或者可能是一些卷? (但是如果有 10 个相同部署的 pod 怎么办?都从同一个卷中读取?如果有 50 个或更多 pod 怎么办(不会有一些问题?))并且应用程序的新版本的部署应该看起来像 v1和 v2(新 pod)还是我们以某种方式使用运行时更改的好处(使用我上面提到的解决方案),并且 pod 版本保持不变,而新代码是通过一些外部解决方案添加的
【问题讨论】:
-
更新:我们确实为 nginx、mime.types 等使用了配置映射,但没有为应用程序使用卷(仅用于工具(jenkins、nexus 等))
-
我不能说 kubernetes 部分,但对于任何了解 Kubernetes 的人来说,Lisp 应用程序都可以运行在运行时更改类/函数定义的代码,同时更改值的实例;通常你可以打开一个服务器并连接一个 REPL 来执行代码;这不是万无一失的,但是您可以在应用程序运行时小心地将其迁移到较新的版本。有时甚至可能需要完全重启(或者比打补丁更简单)。
-
嗨@potatopotato,Vatine 的回答能回答你的问题吗?
标签: kubernetes lisp common-lisp