É bastante confuso, mas aparentemente kubectl expose
só pode criar um novo serviço, não atualizar um já existente. Ele diz que, quando executado em um serviço existente, você deve passar um sinalizador --name
para especificar o nome desejado do novo serviço para evitar o conflito que você estava vendo.
Para atualizar um serviço, você deve poder usar kubectl patch
ou kubectl update
. Provavelmente não é a melhor abordagem, mas eu pessoalmente tento fazer esse tipo de coisa executando kubectl get svc svc-name -o yaml > svc.yaml
, atualizando svc.yaml como desejado (para ter type: LoadBalancer
neste caso), então kubectl update -f svc.yaml
.