当前位置: 首页 > 知识库问答 >
问题:

如何使用kubernetes提供特定环境的应用程序配置

丰誉
2023-03-14

我们正在将ruby微服务迁移到kubernetes,我们过去在config/application.yml中保存特定于环境的配置。使用kubernetes,您可以为每个服务创建特定于环境的文件,例如config/kubernetes/production.yml等。

虽然kubernetes的pod配置文件能够保存环境变量,但您似乎不能在其中保存结构化数据。

例如,在application.yml中,我们有

development: &development
  process:
    notifier:
      type: 'terminal-notifier'
  ...

production: &production
  process:
    notifier:
      type: 'airbrake'
      api_key: 'xxxx'
      host: 'xxx.xxx.com'
  ...

在kubernetes中继续这种实践并在application.yml中打破环境是否合理,或者kubernetes是否有一些其他的最佳实践来为POD提供结构化配置?

请注意,在迁移所有服务之前,我们基本上必须保持配置原样:

kubernetes_staging:
  <<: *staging
  ...

共有1个答案

鲁浩渺
2023-03-14

您可以通过几种方法来实现这一点,一种是在单个文件中继续执行您正在执行的操作,另一种是使用标签来指定要使用哪个环境的配置,另一种是使用名称空间。我个人推荐使用名称空间,这样您就可以为每个可能生成相同pods的环境拥有单独的.yml文件,但配置不同,因此您需要使用staging、prod等名称空间。名称空间也是使相同的kubernetes集群具有分段和生产概念的一个很好的方法。此外,还可以为某些命名空间指定权限。

下面是关于名称空间的文档https://github.com/kubernetes/kubernetes/blob/release-1.0/docs/design/namespaces.md

 类似资料:
  • 我使用Angular和Angular-CLI编写了一个web应用程序。当使用时,它将启动并运行。 但是,我需要在Tomcat上部署它,因为我的Web应用程序不能是默认的servlet,所以它必须可以在不同的路径下访问。 在我的开发服务器上,我可以使用访问以下Web应用程序: 在我的Tomcat生产服务器上,它需要在这里: 问题是,System.js仍然在中搜索其依赖项,而不是 我如何才能告诉Sys

  • 我有一个小型java webapp,由三个微服务组成——api-service、book-service和db-service,所有这些都使用mini kube本地部署在kubernetes集群上。 我计划为api-service和book-service保留单独的UI,从单独的pod提供常见的静态文件,可能是映像。 我能够创建一个前端,为参考本教程的nginx:alpine中的静态文件提供服务。

  • 我在k8s守护程序上工作,其部署需要根据k8s群集提供程序类型(gke、eks、aks、minikube、k3s、kind、在vm上使用kubeadm安装的自我管理k8s等)更改某些值。 如果已经配置了,那么确定k8s集群提供程序类型的正确方法是什么? 一个选项是使用: 然而,这似乎是hacky,我确信它不会在所有情况下工作。例如,对于EKS,我不知道使用什么正则表达式。

  • 我们的Thorntail(2.4.0.Final)webapp使用Infinispan作为JCache(JSR-107)提供商。除了JCache的属性(如按值存储选项)之外,我们还想修改Infinispan特定的属性(如默认获取超时)。 我们当前的解决方案不起作用。以下是我们迄今为止所做的尝试。 定义: 然后下面的类使用上面的配置: 接口定义为: 下面是我们如何使用JCache API配置缓存:

  • 问题内容: 主要问题-可能吗?我没有运气就尝试了.. 主app.js 提供者本身 而且我有这样的错误: 有任何想法吗? 谢谢! 问题答案: 您 不能 将服务注入提供者配置部分。 您 CAN 注入服务成初始化提供者的服务的部分。 细节: Angular框架有两个阶段的初始化过程: 阶段1:配置 在此阶段,将初始化所有提供程序,并执行所有部分。这些部分可能包含配置提供程序对象的代码,因此可以将它们与提

  • 我已在单独的Weblogic域中成功配置了SAML 2.0身份提供程序 我们在另一个域的Weblogic中部署了一个ADF应用程序,该应用程序具有非SAML基于表单的身份验证(ReadOnlySQLAuthenticator用于验证凭据) 我想将第二个域配置为服务提供者(以使现有应用程序能够使用身份提供者登录)。 我做了以下工作: 配置SAML 2.0 Identity Asserter 在服务器