现在我有服务
kubectl get svc ray-test-svc
apiVersion: v1
items:
- apiVersion: v1
kind: Service
metadata:
annotations:
....
labels:
app: ray-test-app
service: ray-test-svc
name: ray-test-svc
namespace: ray-test-ns
spec:
ports:
- nodePort: 30198
port: 80
protocol: TCP
targetPort: 8000
selector:
app: ray-test-app
service: ray-test-svc
version: v2
type: LoadBalancer
编辑完yaml文件后,删除选择器中的version: v2
并执行
kubectl apply -f ray-test-svc.yaml
version:v2
仍在选择器中!
这是我的Yaml文件
kind: Service
apiVersion: v1
metadata:
name: ray-test-svc
annotations:
....
labels:
app: ray-test-app
service: ray-test-svc
spec:
selector:
app: ray-test-app
service: ray-test-svc
type: LoadBalancer
ports:
- port: 80
targetPort: 8000
我使用-v=9
检查日志,发现kubectl使用PATCH
进行更新。这是kubeApi中的错误,还是有什么方法可以删除部分标签?谢谢!
答案 0 :(得分:0)
似乎配置错误:
您没有在第二个YAML中设置namespace
,而是通过命令应用它
kubectl apply -f ray-test-svc.yaml
。它不会更新旧服务,而是在名称空间default
中创建一个新服务。您可以运行命令kubectl apply -f ray-test-svc.yaml -n ray-test-ns
,它将更新您的服务。您也可以将namespace: ray-test-ns
添加到第二个YAML。