【问题标题】:how would i set up an h2 for a kubernetes cluster?我将如何为 kubernetes 集群设置 h2?
【发布时间】:2020-09-21 12:39:45
【问题描述】:

H2 是一个开源的轻量级 Java 数据库。 基本上我正在尝试构建一个 DevOps 管道,但对于 Kubernetes 部分,我需要将 h2 数据库本地连接到 pod,而不是使用 aws rds 来进行类似的操作。关于如何配置它的任何想法?

【问题讨论】:

  • 您能详细说明您的要求吗?你打算用H2 做什么?它只是部署到 kubernetes 吗?
  • 是的,我很确定它应该在每个 pod 中,因此 pod 中的每个服务都可以访问它。或者每个容器中的每个服务都可以访问 h2 实例。我知道您可以为尝试从外部进行通信的服务公开端口,但是在集群内部呢?

标签: kubernetes devops h2 kubernetes-pod kubernetes-cluster


【解决方案1】:

当您说需要在每个 pod 中本地连接 H2 时,有点不清楚您的意思是整体 1 个 H2 还是每个 pod 1 个。我假设您需要一台服务器 H2 而不是嵌入式服务器。

如果您的要求是让所有 pod 与同一个 H2 实例通信,您可以创建一个在服务器模式下运行 H2 的容器并在部署中运行它。您还需要一个服务来公开集群中的数据库端口。有关详细信息,请参阅https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#accessing-the-service

您可能还希望使用支持数据库的文件运行 H2,除非您可以在其 pod 重新启动时通过其他魔术重新创建数据库的内容。要使该文件在 H2 重新启动时保持不变,您需要提供持久卷和持久卷绑定。 PV 的详细信息是 Kubernetes 平台特定的。 https://kubernetes.io/docs/concepts/storage/persistent-volumes/

如果您不需要单个 H2,而是每个 pod 中需要一个 H2,您可以在每个 pod 中在其他容器旁边运行一个 H2 容器。或者,如果您不想在容器中使用 H2,您可以在 Deployment 的主容器命令中分叉 H2 服务器。 (虽然丑陋,但并不是真正的 Kubernetes 方式。)在这种情况下,您将不需要服务,因为您将在 Pod 中本地连接到 H2。但是如果你需要持久存储,我认为管理持久卷以保存每个 Pod 的 H2 的数据库,你会有一个真正的噩梦。

最终,您可能会认为 RDS 更容易......

【讨论】:

  • 感谢您的帮助,我认为您的回答是正确的
猜你喜欢
  • 2019-04-09
  • 2020-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-12
  • 2016-08-23
  • 1970-01-01
  • 2019-11-30
相关资源
最近更新 更多