Isso é um pedido de ajuda? (Se sim, você deve usar nosso guia de solução de problemas e canais de suporte da comunidade, consulte http://kubernetes.io/docs/troubleshooting/.):
Não
Quais palavras-chave você pesquisou nos problemas do Kubernetes antes de registrar este? (Se você encontrou alguma duplicata, responda lá.):
Este é um RELATÓRIO DE ERRO ou SOLICITAÇÃO DE RECURSO? (escolha um):
Relatório de erro
Versão do Kubernetes (use kubectl version
):
Cliente 1.4.4
Grupo 1.4.6
Ambiente :
uname -a
):O que aconteceu :
Aplique uma atualização contínua, veja os novos pods ficarem em execução e prontos, os pods antigos serão encerrados.
Resulta em tempos limite ao atingir o balanceador de carga. Aguarde alguns minutos e o tráfego será roteado corretamente.
O que você esperava que acontecesse :
O tráfego é roteado perfeitamente para os novos pods.
Como reproduzi-lo (o mínimo e preciso possível):
https://gist.github.com/1d668ba12b12f450e8feffb21383ba44
kubectl apply -f deployment.yaml
kubectl get svc
, espere o IP externo aparecer.
Observe que o tráfego é roteado corretamente.
Edite algo (como a variável de ambiente)
kubectl apply -f deployment.yaml
Aguarde até que os pods antigos sejam encerrados. Observe os tempos limite até que o balanceador de carga se atualize.
Qualquer outra coisa que precisamos saber :
Acho que encerrar pods levará a solicitações com falha por padrão, pois não há "drenagem de conexão" no Kubernetes --- você teria que alternar manualmente a sonda de prontidão do aplicativo "just in time": https://github.com/RisingStack/ kubernetes-graceful-shutdown-exemplo
Não tenho certeza se esse é o seu problema (não veja a fonte do seu aplicativo/imagem do Docker).
Código fonte do aplicativo:
https://gist.github.com/d68192f04e3ff50bf9bf7e90ee879077
Vou tentar alterar o código-fonte para drenar solicitações. Faz sentido que este possa ser o problema.
Confirmado. A combinação de drenagem e verificação de prontidão resultou em tempo de inatividade zero:
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596
Desculpe pelo relatório errado.
Comentários muito úteis
Confirmado. A combinação de drenagem e verificação de prontidão resultou em tempo de inatividade zero:
https://gist.github.com/ac98158ccfd0c006de0bb0bc7d31a596
Desculpe pelo relatório errado.