Kubernetes

Kubernetes (K8s) é uma plataforma open source para orquestração de containers, projetada para automatizar deploy, escalabilidade e operação de aplicações distribuídas. Oferece recursos como scheduling, service discovery, balanceamento de carga, auto-healing e rolling updates.

Benefícios
  • Escalabilidade horizontal com HPA
  • Auto-healing e alta disponibilidade
  • Rolling updates e rollbacks controlados
  • Service discovery e load balancing nativos
  • Isolamento e governança com Namespaces e RBAC
  • Portabilidade multi-cloud
Ciclo de Vida
  • Provisionamento do cluster e configuração do kubectl
  • Criação de manifests YAML (Deployment, Service, ConfigMap, Secret)
  • kubectl apply -f . para deploy
  • Monitoramento de Pods e rollouts
  • Exposição via Service ou Ingress
  • Operação contínua e observabilidade
Arquitetura
  • Control Plane: API Server, Scheduler, Controller Manager e etcd
  • Nodes: kubelet, kube-proxy e runtime de containers
  • Workloads: Pods, Deployments, StatefulSets, DaemonSets e Jobs
  • Rede: Services, Ingress Controller e CNI
  • Armazenamento: PV, PVC e StorageClasses
Recursos
  • ConfigMap e Secret
  • Liveness e Readiness Probes
  • HPA, VPA e Cluster Autoscaler
  • RBAC, NetworkPolicies e Pod Security
  • Observabilidade com métricas e logs
  • Helm e Kustomize
Exemplo (Deployment + Service)
apiVersion: apps/v1
kind: Deployment
metadata:
  name: app-web
spec:
  replicas: 2
  selector:
    matchLabels:
      app: app-web
  template:
    metadata:
      labels:
        app: app-web
    spec:
      containers:
        - name: app-web
          image: nginx:stable
          ports:
            - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: app-web
spec:
  selector:
    app: app-web
  ports:
    - port: 80
      targetPort: 80
  type: ClusterIP
DevOps
Nenhum post encontrado.