【发布时间】:2020-03-24 06:17:18
【问题描述】:
我有一个最佳实践问题:
我有一个 Django 应用程序在跟踪我的最终用户帐户的某个地方(非 k8s)运行。另外,我有一个为每个用户提供服务的 k8s 集群。当一个新用户在 Django 中注册时,应该在集群中创建一个新服务。
这样做的最佳做法是什么?我看到的两个选项是:
- 在集群中有一个长期存在的服务,比如
user-pod-creator,它向 Django 端公开一个 API,允许它请求创建一个 pod。 - 授予Django直接使用集群API的权限;让它按照自己的意愿创建(和删除)pod。
直觉上我更喜欢第一个,因为它产生的关注点分离以及出于安全原因。但是第二个会给 Django 应用程序提供很大的灵活性,这样它不仅可以创建和删除 pod,而且如果需要直接 API 调用,它可以对集群有更多的可见性,而不是我必须公开新的 API 端点在user-pod-creator 或其他一些服务中。
【问题讨论】:
-
我的意思是选项 1 只是解决了问题。最后需要与 Kubernetes API 对话。如果您想应用自己的授权规则或日志记录,构建外观服务可能很有用,并且它将被多个内部事物使用。或者,如果您想分离事物,以便更广泛地测试特权组件。但除此之外,在一个新的地方也是同样的问题。
标签: kubernetes