Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Deployment e Statefulset

Olá ! Durante aula não ficou muito claro, no cenário da aplicação do sistema onde estava perdendo a sessão e não conseguindo buscar a imagem na pasta upload, foi criado um statefulset para o compartilhamento dos volumes, neste momento fiquei na duvida se a criação do statefulset elimina necessidade de ainda ter o deploymento e o pod, pois no arquivo yml do statefulset não encontrei nenhum seletor que faz referencia ao deploymento e nem ao Pod, e sim ja referencia diretamente a imagem do container que esta no hub.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: aplicacao-sistema-statefulset
spec:
  serviceName: aplicacao-sistema-statefulset
  selector:
    matchLabels:
      name: aplicacao-sistema-pod-statefulset
  template:
    metadata:
      labels:
        name: aplicacao-sistema-pod-statefulset
    spec:
      containers:
        - name: container-aplicacao-sistema-statefulset
          image: jnlucas/noticia-alura:v2
          ports:
            - containerPort: 80
          volumeMounts:
            - name: imagens
              mountPath: /var/www/html/uploads
            - name: sessoes
              mountPath: /tmp
      volumes:
        - name: imagens
          persistentVolumeClaim:
            claimName: permissao-imagens
        - name: sessoes
          persistentVolumeClaim:
            claimName: permissao-sessao

Obrigado

2 respostas
solução!

Olá Osnir, tudo bem? Nesse ponto os Deployments e os pods antigos não serão mais necessários, porém vão ser criados novos pods que serão agora orquestrados pelo StatefulSet, e podemos entender isso nesse trecho do arquivo:

template:
    metadata:
      labels:
        name: aplicacao-sistema-pod-statefulset
    spec:
      containers:
        - name: container-aplicacao-sistema-statefulset
          image: jnlucas/noticia-alura:v2
          ports:
            - containerPort: 80
          volumeMounts:
            - name: imagens
              mountPath: /var/www/html/uploads
            - name: sessoes
              mountPath: /tmp

Que é justamente o template dos novos pods, que vão usar o volume compartilhado.

Espero ter esclarecido sua dúvida!

Perfeito, muito obrigado