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
ко второму ЯМЛ.