首页 > 解决方案 > Kubernetes 服务部署在默认命名空间而不是使用 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"}

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

标签: kubernetesenvironmentkubernetes-helm

解决方案


这里最可能的问题是 Chart 已经指定了 Helm 2default中哪个不被参数metadata.namespace覆盖。--namespace

如果这是原因,则解决方案是删除 中指定的命名空间metadata.namespace或使其成为模板参数(又名 release value)。

另请参阅https://stackoverflow.com/a/51137448/1977182


推荐阅读