kubectl apply не обновляет метку селектора сервиса - PullRequest
0 голосов
/ 26 октября 2018

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

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 Ответ

0 голосов
/ 26 октября 2018

Это похоже на неверную конфигурацию: вы не установили 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 ко второму YAML.

...