🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

Perguntas da entrevista do Kubernetes 2026: Pods, serviços, RBAC e HPA

⏱️4 min read  ·  733 words

As perguntas da entrevista do Kubernetes testam sua compreensão sobre orquestração de contêineres, ciclo de vida do pod, serviços, rede, escalonamento e operações de produção. Este guia cobre as perguntas K8s mais comuns para engenheiros de DevOps e engenheiros de plataforma em 2026.

Perguntas básicas do Kubernetes

1. O que é um Pod e como ele difere de um Container?

A Podé a menor unidade implantável no Kubernetes. Ele envolve um ou mais contêineres que compartilham:

  • Namespace de rede (mesmo IP, compartilhar localhost)
  • Volumes de armazenamento
  • Vida útil

Geralmente um contêiner por pod. Use vários contêineres para padrões secundários (agente de registro, proxy).

2. Explique a diferença entre Deployment, StatefulSet e DaemonSet

Recurso Caso de uso Recurso principal
Implantação Aplicativos sem estado (servidores web, APIs) Atualizações contínuas, gerenciamento de réplicas
StatefulSet Aplicativos com estado (bancos de dados, Kafka) Nomes de pod estáveis, implantação ordenada, volumes persistentes
DaemonSet Agentes em nível de nó (registro, monitoramento) Um pod por nó automaticamente

3. O que são ConfigMaps e segredos? Como eles diferem?

# ConfigMap — non-sensitive configuration
apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  APP_ENV: production
  DB_HOST: postgres-service
  LOG_LEVEL: info

# Secret — sensitive data (base64 encoded, not encrypted by default!)
apiVersion: v1
kind: Secret
metadata:
  name: app-secrets
type: Opaque
data:
  DB_PASSWORD: c2VjcmV0cGFzcw==  # base64 encoded

# Use in Pod
env:
  - name: APP_ENV
    valueFrom:
      configMapKeyRef:
        name: app-config
        key: APP_ENV
  - name: DB_PASSWORD
    valueFrom:
      secretKeyRef:
        name: app-secrets
        key: DB_PASSWORD

4. Explique os serviços Kubernetes e seus tipos

# ClusterIP (default) — only accessible within cluster
apiVersion: v1
kind: Service
spec:
  type: ClusterIP
  selector:
    app: backend
  ports:
    - port: 8000
      targetPort: 8000

# NodePort — exposes on each node's IP at static port
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30080  # 30000-32767 range

# LoadBalancer — cloud provider creates LB
spec:
  type: LoadBalancer
  # Creates AWS ALB, GCP Load Balancer, Azure LB automatically

# Headless — no virtual IP, returns pod IPs directly (for StatefulSet)
spec:
  clusterIP: None
  selector:
    app: kafka

5. Qual é a diferença entre testes de vivacidade e prontidão?

containers:
  - name: app
    livenessProbe:       # Is the container alive? If fails: RESTART container
      httpGet:
        path: /health
        port: 8000
      initialDelaySeconds: 30
      periodSeconds: 10
      failureThreshold: 3

    readinessProbe:      # Is the container ready for traffic? If fails: remove from load balancer
      httpGet:
        path: /ready
        port: 8000
      initialDelaySeconds: 5
      periodSeconds: 5

    startupProbe:        # For slow-starting apps — delays liveness check
      httpGet:
        path: /startup
        port: 8000
      failureThreshold: 30   # gives 5*30=150s for startup
      periodSeconds: 5

6. Como funciona o escalonador automático horizontal de pods (HPA)?

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp
  minReplicas: 2
  maxReplicas: 20
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70  # scale when avg CPU > 70%
    - type: Resource
      resource:
        name: memory
        target:
          type: AverageValue
          averageValue: 500Mi
    # Custom metrics (requires metrics-server + Prometheus adapter)
    - type: Pods
      pods:
        metric:
          name: requests_per_second
        target:
          type: AverageValue
          averageValue: 100

7. Explique o RBAC do Kubernetes

# ServiceAccount — identity for pods
apiVersion: v1
kind: ServiceAccount
metadata:
  name: myapp-sa

# Role — permissions within a namespace
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: pod-reader
rules:
  - apiGroups: [""]
    resources: ["pods", "pods/logs"]
    verbs: ["get", "list", "watch"]

# ClusterRole — cluster-wide permissions
kind: ClusterRole
rules:
  - apiGroups: ["apps"]
    resources: ["deployments"]
    verbs: ["get", "list", "create", "update", "delete"]

# RoleBinding — attach role to service account
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: myapp-pod-reader
subjects:
  - kind: ServiceAccount
    name: myapp-sa
    namespace: production
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io

8. O que acontece quando você executa `kubectl apply -f Deployment.yaml`?

  1. kubectl envia o manifesto para o API Server (via HTTPS)
  2. API Server valida e autentica a solicitação
  3. O servidor API persiste no etcd (armazenamento de estado do cluster)
  4. O Deployment Controller detecta a alteração via Watch
  5. O controlador cria ReplicaSet se necessário
  6. ReplicaSet Controller cria especificações de pod
  7. O agendador atribui pods aos nós (com base em recursos, taints, afinidade)
  8. kubelet no nó extrai a imagem e inicia o contêiner
  9. Status do pod atualizado para etcd

Sucesso na entrevista do Kubernetes: entenda o plano de controle (API Server, etcd, Scheduler, Controllers), saiba a diferença entre Deployment/StatefulSet/DaemonSet, explique as sondas claramente e conheça a rede (Serviços, Ingress, Políticas de Rede). As perguntas do K8 de produção geralmente abrangem RBAC, HPA, limites de recursos e orçamentos de interrupção de pod.

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇬🇧 English🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা