Implantação de cluster Kubernetes

deploy nível empresa — escalabilidade automática, alta disponibilidade, atualização contínua

quando subir pro K8s

verdade falada: maioria das pessoas não precisa de Kubernetes. Single-machine Docker Compose aguenta bastante tráfego. Mas se sua situação é: vários do time usando junto, precisa escalabilidade automática, zero-downtime update — aí sim K8s faz sentido.

Esse artigo deixa claro: aquele device que você tem na mão dá conta ou não, precisa atualizar, a grana onde meter.

cinco passos deploy K8s

1

Isolamento

primeiro constrói cluster K8s. Dá pra usar K8s gerenciado do provedor (ACK Alibaba, TKE Tencent, AWS EKS), ou construir com kubeadm. Recomenda pelo menos 3 nó, 1 master + 2 worker.

2

cria Deployment

escreve um Deployment YAML, define template do Pod OpenClaw, número de réplica, limite de recurso. Número de réplica recomenda pelo menos 2, quando um cai outro consegue cobrir.

3

cria Service

Service é responsável por distribuir tráfego para cada Pod. Use tipo ClusterIP para uso interno do cluster, ou NodePort para expor diretamente porta para fora.

4

Configuração

Ingress é o gateway de entrada do cluster, responsável pelo roteamento de domínio e descarga TLS. Instala um Nginx Ingress Controller, depois configura regras Ingress.

5

Habilita HPA de auto scaling

HPA (Horizontal Pod Autoscaler) ajusta automaticamente a quantidade de Pod baseado em CPU ou memória. Expande automaticamente em horário de pico, reduz em horário de baixa demanda, economiza dinheiro e trabalho.

Configuração de Deployment

Esse é o sistema de servidor mais comum, é só copiar e colar:

deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: openclaw
  namespace: openclaw
  labels:
    app: openclaw
spec:
  replicas: 2
  selector:
    matchLabels:
      app: openclaw
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    metadata:
      labels:
        app: openclaw
    spec:
      containers:
      - name: openclaw
        image: openclaw/openclaw:latest
        ports:
        - containerPort: 3000
        resources:
          requests:
            cpu: "500m"
            memory: "512Mi"
          limits:
            cpu: "2000m"
            memory: "2Gi"
        env:
        - name: OPENCLAW_API_KEY
          valueFrom:
            secretKeyRef:
              name: openclaw-secrets
              key: api-key
        livenessProbe:
          httpGet:
            path: /health
            port: 3000
          initialDelaySeconds: 30
          periodSeconds: 10
        readinessProbe:
          httpGet:
            path: /health
            port: 3000
          initialDelaySeconds: 5
          periodSeconds: 5
        volumeMounts:
        - name: data
          mountPath: /app/data
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: openclaw-data

Configuração Service

service.yaml
apiVersion: v1

Checklist antes de implantar

YAML pronto, alguns comandos conseguem implantar:

comandos de deploy kubectl
# Criar namespace
💡 não sobe K8s só pra da um show。Pra uso pessoal ou time pequeno (até 5 pessoas), Docker Compose é o bastante. K8s tem curva de aprendizado muito íngreme e precisa manutenção. Espera mesmo pra quando máquina única não aguentar mais e precisar de escalabilidade automática.

Atualização rolling e rollback

Atualização gradual do K8s é nativa, mas você precisa saber como voltar:

Atualização e rollback
# Atualizar versão da imagem
Esse artigo vai desde o zero, guia bem passo a passo desde comprar servidor até terminar implantação. Mesmo sem nunca ter mexido com servidor em nuvem, copiando consegue.