可以使用kubectl替换更新kubernetes中服务的命名空间吗?
kubernetes master在默认命名空间中,我想更改为kube-system命名空间。所以我按照以下方式做到了:
kubectl get svc kubernetes -o yaml > temp.yaml
这生成temp.yaml使用当前kubernetes服务信息,然后我将命名空间的值更改为temp.yaml和exec中的kube-system:
kubectl replace -f temp.yaml
但是我得到了错误:
Error from server: error when replacing "temp.yaml": service "kubernetes" not found
我认为kube-system命名空间中没有名为kubernetes的服务。
谁能告诉我怎么能这样做?
答案 0 :(得分:2)
名称和名称空间在对象上是不可变的。当您尝试更改命名空间时,replace
会在新命名空间中查找服务以覆盖它。您应该能够create -f ...
在新命名空间中创建服务
答案 1 :(得分:0)
kubernetes
服务很特殊,存在于default
命名空间中。事情也可能假设要安全地改变它。