Kubernetes 如何将k8s对象从一个命名空间切换到另一个命名空间?

Kubernetes 如何将k8s对象从一个命名空间切换到另一个命名空间?,kubernetes,Kubernetes,假设我有以下清单,比如部署、服务和入口。所有这些在默认名称空间中都可以正常工作。尽管我想将资源扔到另一个用manifest.yaml创建的名称空间中。我想如果我写kubectl-appy-f$DIR它会像预期的那样工作:对象会被移动到另一个名称空间。但一切都没有改变 总之,如何强制将对象移动到另一个命名空间?您可以编辑所有部署YAML以添加命名空间,也可以运行kubectl apply-f$DIR-n namespacename。此命令将所有YAML部署到命名空间namespacename 编辑

假设我有以下清单,比如部署、服务和入口。所有这些在默认名称空间中都可以正常工作。尽管我想将资源扔到另一个用manifest.yaml创建的名称空间中。我想如果我写kubectl-appy-f$DIR它会像预期的那样工作:对象会被移动到另一个名称空间。但一切都没有改变


总之,如何强制将对象移动到另一个命名空间?

您可以编辑所有部署YAML以添加
命名空间
,也可以运行
kubectl apply-f$DIR-n namespacename
。此命令将所有YAML部署到命名空间
namespacename

编辑:


这里需要理解的是,您不能仅仅通过更改yaml中的名称空间就将资源从一个名称空间移动到另一个名称空间。如果这样做,它只会在另一个命名空间中创建同一资源的另一个副本。从以前的命名空间中删除并在新命名空间中重新创建是正确的方法。

使用命令
kubectl apply-f$DIR--namespace
,您可以在您选择的名称空间中部署清单。我在其他YAML中显式指定了名称空间,然后尝试了kubectl apply-f$DIR,但它没有强制更改名称空间,所以您以前已经在另一个名称空间中应用了YAML?然后您需要首先运行kubectl delete-f$DIR,然后编辑YAML以更改名称空间,然后运行kubectl apply-f$DIRYes,在创建新名称空间之前我已经应用了。我是否正确地理解了不删除然后应用就不能使用名称空间?这里要理解的是,您不能仅仅通过更改yaml中的名称空间就将资源从一个名称空间移动到另一个名称空间。如果这样做,它只会在另一个命名空间中创建同一资源的另一个副本。删除并重新创建是一种方法