Implantação de JavaScript (Node.js) no Kubernetes: guia passo a passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Implantação de JavaScript (Node.js) no Kubernetes: guia básico na prática



O desenvolvimento web moderno é impensável sem conteinerização e orquestração. Se você programa em JavaScript (Node.js), mais cedo ou mais tarde surgirá a pergunta: como executar a aplicação de forma confiável em produção, garantir sua escalabilidade e tolerância a falhas? A resposta — Kubernetes. Não é apenas uma ferramenta da moda, mas o padrão de facto para gerenciar aplicações conteinerizadas.

Neste guia, abordaremos o ciclo completo de implantação de uma aplicação Node.js simples no Kubernetes. Você aprenderá como empacotar o código em uma imagem Docker, criar os manifestos necessários e executar tudo no cluster. O material é voltado para desenvolvedores que já conhecem os fundamentos do Node.js e desejam aprender práticas de DevOps.



1. Preparação da aplicação Node.js para conteinerização

Antes de implantar a aplicação no Kubernetes, é necessário empacotá-la em um contêiner. Para isso, criaremos uma aplicação Express simples. Certifique-se de ter Node.js e npm instalados.

Crie o arquivo app.js:

const express = require('express');const app = express();const port = process.env.PORT || 3000;

app.get('/', (req, res) => { res.json({ message: 'Hello from Node.js on Kubernetes!' });});

app.get('/health', (req, res) => { res.status(200).send('OK');});

app.listen(port, () => { console.log(`Server running on port ${port}`);});

É importante adicionar o endpoint /health — o Kubernetes o usará para verificar a integridade (liveness probe).

Agora crie o Dockerfile na raiz do projeto:

FROM node:18-alpine

WORKDIR /usr/src/app

COPY package*.json ./RUN npm install --production

COPY . .

EXPOSE 3000

CMD ["node", "app.js"]

Construa a imagem e verifique localmente:

docker build -t my-node-app:latest .docker run -p 3000:3000 my-node-app:latest

Abra http://localhost:3000 — você deve ver uma resposta JSON.



2. Manifestos principais do Kubernetes para Node.js

O Kubernetes trabalha com configurações declarativas (YAML). Para implantar uma aplicação Node.js, precisaremos de pelo menos dois recursos principais: Deployment e Service.



2.1. Deployment

O Deployment gerencia as réplicas da sua aplicação. Crie o arquivo deployment.yaml:

apiVersion: apps/v1kind: Deploymentmetadata:  name: node-app-deployment  labels:    app: node-appspec:  replicas: 3  selector:    matchLabels:      app: node-app  template:    metadata:      labels:        app: node-app    spec:      containers:      - name: node-app        image: my-node-app:latest        ports:        - containerPort: 3000        env:        - name: PORT          value: "3000"        livenessProbe:          httpGet:            path: /health            port: 3000          initialDelaySeconds: 5          periodSeconds: 10        readinessProbe:          httpGet:            path: /            port: 3000          initialDelaySeconds: 3          periodSeconds: 5

Pontos importantes:

  • replicas: 3 — o Kubernetes criará 3 cópias da sua aplicação para tolerância a falhas.
  • livenessProbe — verifica se a aplicação está ativa. Se não houver resposta, o Kubernetes reiniciará o contêiner.
  • readinessProbe — verifica se a aplicação está pronta para receber tráfego. Enquanto a verificação não for aprovada, o pod não recebe requisições.


2.2. Service

O Service fornece acesso de rede aos pods. Crie o service.yaml:

apiVersion: v1kind: Servicemetadata:  name: node-app-servicespec:  selector:    app: node-app  ports:    - protocol: TCP                

Blogs

Book Recommendations