Adicione o LoadBalancer ao serviço existente

1

Após este tutorial do livro de visitas .

Perto do fim, eles encobrem como criar um LoadBalancer ou atribuir NodePorts ao serviço. Eles fazem referência a este documento que descreve os diferentes tipos e o que eles fazem, mas não entrem em detalhes sobre como aplicá-los a um serviço. Existe uma maneira de atualizar o serviço em execução, criando e anexando um balanceador de carga para as portas especificadas?

Usando o Amazon Web Services para hospedar nosso cluster, ele oferece suporte ao balanceador de carga, excelente na criação de um serviço, mas não tenho certeza de como modificar o serviço.

EDITAR:

Tentar isso resultou em um erro:

$ kubectl expose service frontend --port=80 --type=LoadBalancer
Error from server: service "frontend" already exists

    
por four43 12.10.2015 / 20:38

2 respostas

4

É 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 .

    
por 12.10.2015 / 22:00
1

Não tenho certeza se isso é adequado ao seu caso, mas uma abordagem mais radical e mais simples seria excluir o serviço (mas não a implantação):

kubectl delete service 'service-name'

e expor novamente a implantação como LoadBalancer:

kubectl expose deployment/'deployment-name' --type="LoadBalancer"
    
por 06.12.2016 / 12:37