【问题标题】:How to connect applications with services created through Kubernetes operators?如何将应用程序与通过 Kubernetes Operator 创建的服务连接起来?
【发布时间】:2019-05-31 02:59:09
【问题描述】:

我正在寻找将应用程序与服务连接起来的最佳做法。我有一个创建服务的数据库操作员,并且有一个需要连接到它的应用程序 pod。以下方法行得通吗?

  1. operator 将访问详细信息作为 Secret 和 ConfigMap 注入 pod。
  2. 操作员通过标签选择器(例如,connects-to: mysql)识别应用程序 pod。
  3. 应用程序 pod 通过环境变量接收服务访问详细信息。
  4. 操作员可以记录环境变量和标签选择器。

如果上述流程能够正常工作,我如何将值注入 pod? 我可以看到一些机制。哪个更好?

  1. PodPreset(自 2017 年以来的 Alpha 版)
  2. 初始化器
  3. MutatingAdmissionWebhook

这是控制器和参与者之间的预期交互(PodPreset 可以替换为其他选项):

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您的问题并不完全清楚。

    如果我理解您的问题,您可以使用带有多个值文件的 helm。

    helm install ./repo/ --name repo --values ./values.file 
    

    你也可以通过 --set 命令来添加由于某种原因不在值文件中的值

    【讨论】:

    • 感谢您的回复。我会试试你建议的helm 命令。你能告诉我我的问题的哪一部分不清楚,有什么令人困惑的地方吗?
    【解决方案2】:

    调查这个问题似乎很笼统。

    例如,您可以找到有关“CONTAINERS & KUBERNETES - 构建 Kubernetes Operator 和有状态应用程序的最佳实践here 的更多信息。

    根据文档,最重要的是:

    操作员通过使用 CRD 和自定义控制器来锻炼 Kubernetes 最有价值的功能之一——可扩展性。 Operator 扩展了 Kubernetes API 以支持不同类别工作负载的现代化,并提供改进的生命周期管理和调度。

    请参考"Application management made easier with Kubernetes Operators on GCP Marketplace" 如您所见 - 在 GCP 中发布了一组 Kubernetes 运算符,用于封装特定应用程序的最佳实践和端到端解决方案。

    在堆栈溢出中你可以找到关于CRD的讨论

    作为示例,请参阅 postgress 运算符,其中比较了两种设置 Postgres 运算符配置的方法here。 在这种情况下,“基于 CRD 的配置比基于 ConfigMaps 的配置更强大,应该使用,除非有使用现有配置的兼容性要求” 在这里你还可以找到信息"When to use configMap or a custom resource?"

    希望有帮助

    【讨论】:

      猜你喜欢
      • 2020-12-28
      • 2020-01-07
      • 2019-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 2013-05-12
      相关资源
      最近更新 更多