我现在正在使用Kubernetes测试部署到不同名称空间的部署。在这里,我使用Kubernetes舵图。在我的图表中,我有deployment.yaml和service.yaml。
当我使用Helm命令helm install --upgrade
定义“名称空间”参数时,它不起作用。当我阅读有关内容时,发现以下语句-“头盔2不会被--namespace参数覆盖”。
我尝试了以下命令:
helm upgrade --install kubedeploy --namespace=test pipeline/spacestudychart
NB 在这里,我的服务使用默认名称空间进行部署。
describe pod的屏幕截图:
这里的“ 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部署?我需要在此处进行哪些更改以部署测试/产品而不是此默认名称空间。
答案 0 :(得分:2)
从所有图表文件中删除namespace: test
,helm 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 }}