Sobes.tech
Intern

Para que serve o comando xpose no DevOps?

sobes.tech IA

Resposta da IA

O comando expose no contexto de DevOps, especialmente ao trabalhar com contêineres (Docker, Kubernetes), é usado para indicar quais portas devem estar acessíveis de fora do contêiner.

No caso do Dockerfile:

# Indica que a aplicação dentro do contêiner escuta na porta 8080.
# Isto é apenas documentação e não publica automaticamente a porta.
EXPOSE 8080

No caso do Kubernetes:

Aqui, "expose" geralmente refere-se à criação de um Service, que fornece acesso a um grupo de Pods por uma porta específica.

# Exemplo de Service do tipo NodePort, que "expose" a aplicação ao exterior.
apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app # Seleciona Pods com a etiqueta app=my-app
  ports:
    - protocol: TCP
      port: 80 # Porta que outros serviços ou utilizadores acessam
      targetPort: 8080 # Porta na qual a aplicação escuta dentro do Pod
      nodePort: 30000 # Porta nos nós do cluster, através da qual o serviço é acessível (para NodePort)
  type: NodePort # Tipo de serviço que define a forma de acesso

Assim, expose em termos gerais serve para:

  • Documentação: No Dockerfile, indica as portas que a aplicação espera usar.
  • Publicação: No Kubernetes (através do Service), torna a aplicação acessível de fora do cluster ou para outros serviços dentro do cluster.

A publicação direta de portas no Dockerfile ocorre ao iniciar o contêiner com a opção -p ou ao usar um Service no Kubernetes. EXPOSE no Dockerfile por si só não abre portas na máquina host ou na rede.