Kubernetes 中命名空间的使用
Usage of Namespaces in Kubernetes
我有一个关于名称空间的问题,想请教您的专业知识来消除我的疑虑。
我对名称空间的理解是它们用于在团队和项目之间引入逻辑边界。
当然,我在某处读到名称空间可用于 introduce/define 同一集群中的不同环境。
例如测试、UAT 和生产。
但是,如果一个组织正在开发一个解决方案并且该解决方案由 X 数量的微服务组成并且有专门的团队来管理这些服务,
我们是否仍需要使用名称空间来分隔它们,还是它们将部署在反映解决方案的单个名称空间中?
例如,如果我们正在开发电子商务应用程序:
库存、购物车、付款、订单等是我能想到的微服务。我们应该将它们部署在 sky-commerce 的命名空间下吗?或者他们应该需要专用的命名空间。?
我的另一个问题是。如果我们将服务部署在不同的命名空间中,我们是否可以通过 APIGateway/Ingress controller 访问它们?
例如,我有前端 SPA 应用程序,它有自己的 BFF(前端后端)。 BFF 可以通过 APIGateway/Ingress 控制器访问其他服务吗?
请帮我解开这些疑惑
在此先感谢您在这方面的及时回复。
RSF
命名空间很便宜,多用。如果两个东西 100% 是一个单元(两个始终同时更新并且在功能上是单个部署的守护进程),或者如果因为使用了相关对象(例如服务)而必须这样做,则只能将它们放在同一个命名空间与它引用的 Pods 在同一个 ns 中。
创建新的 Kubernetes 命名空间时,使用定义的系统调用使用命名空间 API 发送请求,并且由于 Kubernetes 具有管理员权限,因此将创建一个新的命名空间。新命名空间将包含在其域下分配的新进程的功能规范。
关于您上面的问题,是的,您可以将服务保留在不同的命名空间中,只要它们能够一起通信并将服务作为一个整体呈现给外界。
由于所有组织都是不同的,因此由您决定如何最好地实施和管理 Kubernetes 命名空间。一般来说,目标是:
创建有效的 Kubernetes 命名空间结构
保持名称空间简单且特定于应用程序
标记一切
必要时使用簇分离
我有一个关于名称空间的问题,想请教您的专业知识来消除我的疑虑。 我对名称空间的理解是它们用于在团队和项目之间引入逻辑边界。 当然,我在某处读到名称空间可用于 introduce/define 同一集群中的不同环境。 例如测试、UAT 和生产。
但是,如果一个组织正在开发一个解决方案并且该解决方案由 X 数量的微服务组成并且有专门的团队来管理这些服务, 我们是否仍需要使用名称空间来分隔它们,还是它们将部署在反映解决方案的单个名称空间中?
例如,如果我们正在开发电子商务应用程序: 库存、购物车、付款、订单等是我能想到的微服务。我们应该将它们部署在 sky-commerce 的命名空间下吗?或者他们应该需要专用的命名空间。?
我的另一个问题是。如果我们将服务部署在不同的命名空间中,我们是否可以通过 APIGateway/Ingress controller 访问它们?
例如,我有前端 SPA 应用程序,它有自己的 BFF(前端后端)。 BFF 可以通过 APIGateway/Ingress 控制器访问其他服务吗?
请帮我解开这些疑惑
在此先感谢您在这方面的及时回复。
RSF
命名空间很便宜,多用。如果两个东西 100% 是一个单元(两个始终同时更新并且在功能上是单个部署的守护进程),或者如果因为使用了相关对象(例如服务)而必须这样做,则只能将它们放在同一个命名空间与它引用的 Pods 在同一个 ns 中。
创建新的 Kubernetes 命名空间时,使用定义的系统调用使用命名空间 API 发送请求,并且由于 Kubernetes 具有管理员权限,因此将创建一个新的命名空间。新命名空间将包含在其域下分配的新进程的功能规范。
关于您上面的问题,是的,您可以将服务保留在不同的命名空间中,只要它们能够一起通信并将服务作为一个整体呈现给外界。
由于所有组织都是不同的,因此由您决定如何最好地实施和管理 Kubernetes 命名空间。一般来说,目标是:
创建有效的 Kubernetes 命名空间结构
保持名称空间简单且特定于应用程序
标记一切
必要时使用簇分离