kubectl apply не обновляет метку селектора сервиса

Сейчас у меня есть сервис

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 или есть способ просто удалить частичные метки? Спасибо!!

1 ответ

Решение

Это похоже на неправильную конфигурацию: вы не установили namespace во втором YAML, и вы применяете его по команде kubectl apply -f ray-test-svc.yaml, Он не будет обновлять старый сервис, он создаст новый в пространстве имен default, Вы можете запустить команду kubectl apply -f ray-test-svc.yaml -n ray-test-ns и он обновит ваш сервис. Также вы можете добавить namespace: ray-test-ns ко второму ЯМЛ.

Другие вопросы по тегам