【问题标题】:Kubernetes single deployment yaml file for spinning up the application用于启动应用程序的 Kubernetes 单一部署 yaml 文件
【发布时间】:2023-03-28 20:53:01
【问题描述】:

我正在为一个包含 8 个微服务、activemq、postgres、redis 和 mongodb 的应用程序设置 kubernetes。

在完成 pod 和部署的整个配置之后,有没有办法创建一个单独的主部署 yaml 文件,该文件将为整个应用程序创建整套服务、replcas 等。

注意:我将为上述所有服务使用多个部署 yaml 文件、状态集等。

【问题讨论】:

  • 你用kubernetes-helm标记了这个;你有 Helm 图表,检查到源代码控制吗?对于应该存在哪些对象,这是一个很好的事实来源。

标签: kubernetes kubernetes-helm


【解决方案1】:

你可以使用这个脚本:

NAMESPACE="your_namespace"
RESOURCES="configmap secret daemonset deployment service hpa"

for resource in ${RESOURCES};do
  rsrcs=$(kubectl -n ${NAMESPACE} get -o json ${resource}|jq '.items[].metadata.name'|sed "s/\"//g")
  for r in ${rsrcs};do
    dir="${NAMESPACE}/${resource}"
    mkdir -p "${dir}"
    kubectl -n ${NAMESPACE} get -o yaml ${resource} ${r} > "${dir}/${r}.yaml"
  done
done

记得在脚本中指定要导出的资源。

More info here

【讨论】:

    【解决方案2】:

    有没有办法创建一个单一的主部署 yaml 文件,该文件将为整个应用程序创建整套服务、副本等。

    既然你已经提到了kubernetes-helm,你为什么不把它用于那个确切的目的呢?简而言之,helm 是 Kubernetes 的一种包管理器,有人说类似于 yum 或 apt。它部署了您实际上可以将其称为打包应用程序的图表。它包含所有可作为一个单元部署的预配置应用程序。它不完全是一个文件,而是构建所谓的 helm chart 的更多文件集合。

    什么是舵图?

    它们基本上是将 K8s yaml 清单组合成一个可以安装到您的集群的单个包。安装包就像运行单个命令一样简单,例如helm install。完成后,图表可高度重复使用,从而减少了创建开发、测试和生产环境的时间。

    作为部署多个资源的复杂舵图示例,您想查看Stackstorm。 基本上,一旦在没有任何自定义配置的情况下部署,此图表将为 StackStorm 的每个组件以及 RabbitMQ、MongoDB 和 Redis 等后端部署 2 个副本。

    【讨论】:

      猜你喜欢
      • 2018-12-21
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 2022-10-25
      • 2018-08-17
      • 2019-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多