Atualização de atualização do Kubernetes que normalmente retém dados locais?

1

Um aplicativo do Kubernetes que usa o armazenamento do nó local para manter o estado mutável (como no Kubernetes 101 exemplo) perde seu armazenamento quando o aplicativo é atualizado. Esse é um efeito colateral da típica abordagem de atualização de implantação de ativação de novos pods e abaixando as vagens velhas. Isso é lamentável, já que significa recopiar dados (possíveis centenas de gigabytes) em cada nó, mesmo que os dados já estejam em um volume inacessível. Isso diminui bastante as atualizações.

O que um programador de aplicativos pode fazer para otimizar isso? Alguns atributos do conjunto podem ser atualizados in-place , mas isso cobre apenas um pequeno subconjunto de atualizações. Volumes persistentes são intrinsecamente remotos, não locais, por isso não podem ser mapeados e não terão o mesmo desempenho do armazenamento local; e, de forma inadequada, têm vida independente da implantação que deveria possuí-los. A edição # 9043 discute a questão, mas não parece estar chegando a um consenso; e, de qualquer forma, às vezes, o pod pode ser substituído no mesmo nó, mas não é atualizado no local. A edição 7562 começou a discuti-lo, mas se transformou em uma discussão de volumes persistentes. O problema # 598 está relacionado, mas na verdade é quando você prefere que o pod permaneça não atribuído a qualquer nó de iniciá-lo com um diretório vazio.

    
por aecolley 31.07.2016 / 16:49

1 resposta

2

A partir do design atual do Kubernetes, o armazenamento local deve ser sempre tratado como efêmero, como um contêiner ou um pod. Não apenas por causa de cenários como esse, mas porque seu pod pode falhar e ser remarcado a qualquer momento. De a documentação do volume :

When a Pod is removed from a node for any reason, the data in the emptyDir is deleted forever.

...

Some uses for an emptyDir are:

  • scratch space, such as for a disk-based merge sort
  • checkpointing a long computation for recovery from crashes
  • holding files that a content-manager container fetches while a webserver container serves the data

Os discos permanentes do SSD do GCE são bastante rápidos, mas se você realmente precisar do desempenho do armazenamento local, copie temporariamente os dados do armazenamento persistente para trabalhar com ele.

    
por 16.09.2016 / 02:22

Tags