azure 如何从kubernetes部署配置文件中的helm获取运行时设置以覆盖www.example.com中的appsettingsasp.net

afdcj2ne  于 2022-11-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(94)

我在DotNet中有一个微服务“MyService”,它有一个数据库。在开发时,我有一个本地PostgreSQL,并且在我的appsettings配置中有一个connectionstring:

{
 "MyConString": ....
}

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

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

  ....
}

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

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服务部署中,以替换appsettings中的连接字符串?

9q78igpj

9q78igpj1#

可以使用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。现在你可以从release中转储你指定的值。

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中获得所有这些值。我经常使用它来完成日常的任务。

相关问题