Mesos 上的 Kubernetes
Kubernetes on Mesos
我有以下设置:
/16 网络中的 Kubernetes on Mesos(基于 kubernetes-mesos 项目)。
每个 pod 都有自己的 IP,我相信这将有 64 000 pods。
这个想法是为每个应用程序提供隔离,即每个应用程序在同一个 pod 中都有自己的 mysql - 应用程序访问本地主机上的 mysql(在 pod 中)。
如果需要额外的服务,我会使用 kubernetes 滚动更新将服务的容器添加到 pod,应用程序也将能够在本地主机上访问这个新服务。
每个应用程序都需要尽可能多的隔离。
- 这样的实现有什么缺陷吗?
- 我必须使用 weave 吗?
- 在 运行 安装 kubernetes-mesos 时,有一个选项可以指定服务 IP 范围。
- 一个漏洞是我如何扩展服务,这真的可行吗?
- 有更好的方法吗?即提供隔离服务
谢谢。
PS//我显然是这方面的菜鸟,我正在努力获得最佳设置 运行。
这种设计适用于小型应用程序,但你是对的,如果你突然想要两个有几个服务实例访问相同的 mysql 后端,则很难扩展.
您可能想考虑将每项服务放入单独的名称空间中。然后服务的 DNS 查找将默认限定在它自己的命名空间内,这样它就不会找到其他服务的资源,除非它明确地寻找它们。这将使您可以将 mysql(以及任何其他依赖项)放在单独的 pod 中,以便前端可以独立扩展。
一个常见的误解是 Pod 应该管理垂直的多层堆栈:例如 Web 层 + DB 层。
阅读 Kubernetes design intent of Pods 很有趣:它们用于收集 'helper' 个进程,而不是组成一个垂直堆栈。
为了回答您的问题,我建议:
- 仅为 Web 层定义一个 Pod 模板。这可以扩展到任何需要的大小,使用复制控制器(问题 #1 和 #3)。
- 为 MySQL 定义另一个 Pod。
- 使用 Service abstraction 定位这些组件。
我有以下设置: /16 网络中的 Kubernetes on Mesos(基于 kubernetes-mesos 项目)。 每个 pod 都有自己的 IP,我相信这将有 64 000 pods。 这个想法是为每个应用程序提供隔离,即每个应用程序在同一个 pod 中都有自己的 mysql - 应用程序访问本地主机上的 mysql(在 pod 中)。 如果需要额外的服务,我会使用 kubernetes 滚动更新将服务的容器添加到 pod,应用程序也将能够在本地主机上访问这个新服务。 每个应用程序都需要尽可能多的隔离。
- 这样的实现有什么缺陷吗?
- 我必须使用 weave 吗?
- 在 运行 安装 kubernetes-mesos 时,有一个选项可以指定服务 IP 范围。
- 一个漏洞是我如何扩展服务,这真的可行吗?
- 有更好的方法吗?即提供隔离服务
谢谢。 PS//我显然是这方面的菜鸟,我正在努力获得最佳设置 运行。
这种设计适用于小型应用程序,但你是对的,如果你突然想要两个有几个服务实例访问相同的 mysql 后端,则很难扩展.
您可能想考虑将每项服务放入单独的名称空间中。然后服务的 DNS 查找将默认限定在它自己的命名空间内,这样它就不会找到其他服务的资源,除非它明确地寻找它们。这将使您可以将 mysql(以及任何其他依赖项)放在单独的 pod 中,以便前端可以独立扩展。
一个常见的误解是 Pod 应该管理垂直的多层堆栈:例如 Web 层 + DB 层。
阅读 Kubernetes design intent of Pods 很有趣:它们用于收集 'helper' 个进程,而不是组成一个垂直堆栈。
为了回答您的问题,我建议:
- 仅为 Web 层定义一个 Pod 模板。这可以扩展到任何需要的大小,使用复制控制器(问题 #1 和 #3)。
- 为 MySQL 定义另一个 Pod。
- 使用 Service abstraction 定位这些组件。