gpt4 book ai didi

.net - 如何从 kubernetes 部署配置文件中的 helm 获取运行时设置以覆盖 asp.net 中的 appsettings

转载 作者:行者123 更新时间:2023-12-03 06:41:55 27 4
gpt4 key购买 nike

我在 DotNet 中有一个微服务“MyService”,它有一个数据库。在开发时,我有一个本地 postgreSQL,并且我的 appsettings 配置中有连接字符串:

{
"MyConString": ....
}

现在在生产环境中,我将有一个 postgresCluster,我从 terraform 和 helm 图表开始:

resource "helm_release" "postgres-cluster" {
name = "postgres-cluster"
repository = "https://charts.bitnami.com/bitnami"
chart = "postgresql-ha"
namespace = local.namespace

....
}

否,我将我的服务部署在与具有 kubernetes 部署的 postgres 集群相同的 kubernetes 集群(Azure/aks)中:

apiVersion: v1
kind: Service
metadata:
name: my-service-service
spec:
selector:
app: my-service
ports:
- protocol: TCP
port: 80
targetPort: 9376

所以我的命令是:基础设施将使用 terraform(kuberentes、postgresql)部署一次,然后一切都在运行,然后我的服务将被部署。

因此,我需要将缺少的拼图拼凑在一起:如何将正在运行的 helm 图表中的信息获取到我的 kubernetes 服务部署中,以替换应用程序设置中的连接字符串?

最佳答案

您可以使用 helm 命令转储所有值。

首先在命名空间中部署 Helm 版本。

helm list -n ingress-controller
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
ingress-nginx ingress-controller 1 2022-11-03 18:57:32.4117796 +0500 PKT deployed ingress-nginx-4.3.0 1.4.0

在我的例子中,版本名称是 ingress-nginx。现在您可以从版本中转储指定的值。

helm get values ingress-nginx -n ingress-controller

如果您想转储版本中的所有值。你可以这样做。

helm get values ingress-nginx -a -n ingress-controller > values.yaml

从values.yaml 文件中,您可以获取您选择的字符串/配置详细信息。

可选:kubernetes 有一个 IDE 可以帮助您从 UI 获取所有这些值。 Lens 。我每天经常使用它来执行此类任务。

关于.net - 如何从 kubernetes 部署配置文件中的 helm 获取运行时设置以覆盖 asp.net 中的 appsettings,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74451261/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com