Kubernetes Helm Chart中的命名空间部署问题

时间:2019-08-12 11:30:15

标签: kubernetes kubernetes-helm

我现在正在使用Kubernetes测试部署到不同名称空间的部署。在这里,我使用Kubernetes舵图。在我的图表中,我有deployment.yaml和service.yaml。

当我使用Helm命令helm install --upgrade定义“名称空间”参数时,它不起作用。当我阅读有关内容时,发现以下语句-“头盔2不会被--namespace参数覆盖”。

我尝试了以下命令:

helm upgrade --install kubedeploy --namespace=test pipeline/spacestudychart 

NB 在这里,我的服务使用默认名称空间进行部署。

describe pod的屏幕截图:

enter image description here

这里的“ helm version”命令输出如下:

docker@mildevdcr01:~$ helm version
Client: &version.Version{SemVer:"v2.14.3", 
GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.3", 
GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}

由于这个原因,我试图将此命令添加到deployment.yaml 中,如下所示,在metas.namespace下,

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "spacestudychart.fullname" . }}
  namespace: test

我创建了2个名称空间test和prod。但是在这里它也不起作用。当我添加这样的内容时,我没有得到服务。我无法访问。并且在Jenkins控制台中没有错误。当我在helm install --upgrade命令中定义时,它正在使用默认名称空间进行部署。但是这里也没有部署。

此后,我从Deployment.yaml中删除了命名空间,并像以前一样添加了metadata.namespace。我也无法访问已部署的服务。但是Jenkins控制台输出仍然显示成功。

为什么命名空间不能用于我的Helm部署?我需要在此处进行哪些更改以部署测试/产品而不是此默认名称空间。

2 个答案:

答案 0 :(得分:2)

从所有图表文件中删除namespace: testhelm install --namesapce=namespace2 ...应该可以正常工作

答案 1 :(得分:0)

在 Helm 3.2+ 上,我建议(基于 this thread)将命名空间创建移至 CLI:

1 ) 在 --create-namespace 标志后添加 -n

helm upgrade --install <name> <repo> -n <namespace> --create-namespace

2 ) 在不同的资源内部 - 传递 Release 命名空间:

namespace: {{ .Release.Namespace }}