1

现在我有一个服务

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: v2in 选择器并执行

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 中的错误还是有什么方法可以删除部分标签?谢谢!!

4

1 回答 1

0

看起来配置错误:您没有namespace 在第二个 YAML 中设置,而是通过 command 应用它 kubectl apply -f ray-test-svc.yaml。它不会更新旧服务,它会在 namespace 中创建一个新服务default。您可以运行命令kubectl apply -f ray-test-svc.yaml -n ray-test-ns,它会更新您的服务。您也可以添加namespace: ray-test-ns到第二个 YAML。

于 2018-10-26T10:07:55.000 回答