Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] A partir da criação do deployment para cada camada ainda é preciso das demais ?

Não sei se entendi exatamente a proposta do deployment, como eu defino nele as especificações dos containers ele abstrai todo o arquivo da criação do pod ? Pois se eu já criei na parte 1 do curso o arquivo "portal-noticias.yaml" com as especificações do pod por que no deployment eu preciso declarar novamente o container,image e port?

De alguma forma eu não poderia simplesmente só apontar para o arquivo ou label referente a ele similar ao que fiz nas services?

1 resposta
solução!

Olá!

Entendo a sua dúvida sobre a necessidade de repetir as especificações dos containers no arquivo de Deployment, mesmo já tendo definido anteriormente no arquivo do Pod. Vamos esclarecer isso!

O Deployment no Kubernetes é um recurso que gerencia a criação e atualização de uma coleção de Pods. Ele oferece funcionalidades adicionais como controle de versionamento, rollback e escalabilidade automática, que não são possíveis apenas com a definição de Pods.

Quando você cria um Deployment, você está definindo um "modelo" para os Pods que ele gerencia. Isso inclui especificar o container, a imagem, as portas, entre outras configurações. É por isso que você precisa repetir essas informações no arquivo de Deployment. O Deployment usa essas especificações para criar e gerenciar os Pods conforme necessário.

Aqui está um exemplo para ilustrar:

Arquivo do Pod (portal-noticias.yaml)

apiVersion: v1
kind: Pod
metadata:
  name: portal-noticias
spec:
  containers:
  - name: portal-noticias-container
    image: aluracursos/portal-noticias:1
    ports:
    - containerPort: 80

Arquivo do Deployment (portal-noticias-deployment.yaml)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: portal-noticias-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: portal-noticias
  template:
    metadata:
      labels:
        app: portal-noticias
    spec:
      containers:
      - name: portal-noticias-container
        image: aluracursos/portal-noticias:1
        ports:
        - containerPort: 80

No exemplo acima, o Deployment portal-noticias-deployment.yaml define a mesma configuração de container que o Pod portal-noticias.yaml, mas com a adição de funcionalidades de gerenciamento como réplicas e seletor de labels.

Portanto, mesmo que pareça repetitivo, essa estrutura é necessária para que o Kubernetes possa fornecer as funcionalidades avançadas que o Deployment oferece.

Espero ter ajudado e bons estudos!