docker - Kubernetes 中参数略有不同的微服务实例(Docker 化)

标签 docker kubernetes

我对 Kubernetes 有点陌生,不确定执行此操作的标准方法。我希望拥有单个微服务的多个实例,但每个容器的参数化略有不同。 (也许传递给容器的环境变量对于每个实例都是不同的,如 .yaml 文件的容器规范中所指定?)

似乎具有多个副本的单一部署不起作用。然而,拥有 n 个不同的部署且 .yaml 文件略有不同似乎有点多余。也许有某种模板解决方案吗?

或者每个微服务是否应该相同并从中央服务中寻找其参数?

我意识到这可以被解释为“意见问题”,但我正在寻找典型的解决方案。

最佳答案

肯定有几种方法可以做到这一点。一种流行的选择是使用 Helm 。 Helm 允许您使用 Go 模板定义 kubernetes list ,并将它们打包在一个称为 Helm Chart 的单元上。稍后您可以安装此 Chart(Helm 调用安装来将这些 list 保存在 Kubernetes API 中)。安装 Helm Chart 时,您可以传递渲染模板时将使用的参数。这样您就可以重用几乎所有内容,只需替换 list 的重要部分:部署、服务等。

plenty of Helm charts available as open sources projects ,您可以将其用作如何创建自己的图表的示例。

还有很多useful guides on how to create your first Helm Chart .

在这里您可以找到official docs on developing your own Charts .

关于docker - Kubernetes 中参数略有不同的微服务实例(Docker 化),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56118904/

相关文章:

kubernetes - 如何找到用于 gitlab 集成的 gcloud Kubernetes api url

docker - 一个 Docker 容器如何找到另一个 Docker 容器的 IP 地址?

windows - docker build 卡在包含许多文件的目录中

docker - 动态设置docker容器的JAVA_HOME

kubernetes - 升级主机操作系统 Ubuntu 18 后 kube-dns pod 崩溃

Kubernetes 部署和初始化容器

sql-server - SQL Server Container Linux - 用户 'sa' 登录失败

docker - 无法通过SSH(Azure DevOps)访问docker

Docker:为什么端口转发不适用于 gotour?

kubernetes - Kubernetes 中的服务位于何处?