【问题标题】:Kubernetes - Creating a specific namespace for "services"Kubernetes - 为“服务”创建一个特定的命名空间
【发布时间】:2016-11-19 09:26:49
【问题描述】:

在我们的微服务架构中,我们有许多有状态的服务:

  • MongoDB
  • MySQL
  • Redis
  • 弹性搜索

我们还有两个 Kubernetes namespaces 用于不同的环境:

  • 分期
  • 生产

我们在两个环境/命名空间中运行上述每个有状态服务。我一直在想,由于预算有限,我们集群中的资源有限。我们是否应该为这些服务创建第三个命名空间并将它们用于生产和登台环境?例如创建一个

“服务”命名空间?

在这种情况下,最佳做法是什么?有什么缺点吗?

【问题讨论】:

    标签: docker kubernetes microservices devops environments


    【解决方案1】:

    命名空间通常不会相互交流,除非您使用全限定名。

    对 Staging 和 Prod 使用相同的后端服务听起来像是一个非常冒险的赌注:您在 staging 中搞砸的任何事情都会自动在 Prod 中。 可能不是你想要的……

    但如果您想知道是否可以,可以,如果您使用 FQDN(即 service-name.svc..cluster.local )来访问服务。

    【讨论】:

    • 是的,我也这么想,最好有一个孤立的环境。我们通常使用负载均衡器服务公开的外部域/DNS。这是一个坏习惯吗?例如elasticsearch.myapp.com, redis.myapp.com?
    • 如果您的整个集群位于同一个提供商,您不应该将您的服务暴露在外部......尤其是如果您没有使用 TLS 和身份验证来保护它们。
    • 你应该只让你的应用暴露在外面,并让 Pod 与你的内部服务对话
    • 只是出于安全原因吗?我们通常使用各种工具监控这些服务,例如SequalPro、Redis 客户端、Kabana……还有延迟、路由等其他原因吗?
    • 为什么这些工具是外部的?他们都应该在你的防火墙后面。然后使用vpn从外面进入,或者只暴露Ui。数据库服务没有理由暴露
    猜你喜欢
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多