使用 Helm 在默认命名空间而不是定义的命名空间中部署 Kubernetes 服务

Kubernetes service deploying in default namespace instead of defined namespace using Helm

我正在尝试在 2 个不同的开发和测试环境中的 Kuberenetes 集群上部署我的微服务。我正在使用 helm chart 来部署我的 Kubernetes 服务。我正在使用 Jenkinsfile 来部署图表。在 Jenkinsfile 中,我在阶段中添加了 helm 命令,如下所示,

stage ('helmchartinstall')
                {
                    steps
                    {
                        sh 'helm upgrade --install kubekubedeploy --namespace test pipeline/spacestudychart'
                    }
                }
             }

这里我定义了--namespace测试参数。但是在部署时,它会显示带有默认命名空间的控制台输出。我已经创建了命名空间 test 和 prod。

当我检查 Helm 版本时,得到如下响应,

docker@mildevdcr01:~$ helm version
Client: &version.Version{SemVer:"v2.14.1", 
GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.0", 
GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}

我在这里定义命名空间有什么错误吗?

这里最有可能的问题是图表已经将 default 指定为 metadata.namespace,在 Helm 2 中它没有被 --namespace 参数覆盖。

如果这是原因,解决方案是删除 metadata.namespace 中指定的命名空间或将其设为模板参数(也称为发布 value)。

另见

方法一:

export TILLER_NAMESPACE= your_namespace
helm upgrade -i -n release_name chart.tgz

方法二:

helm upgrade -i -n release_name --namespace your_namespace chart.tgz