Top 15 Perguntas-Chave sobre Kubernetes que TODO Iniciante Deve Dominar para Brilhar em Entrevistas Técnicas

  1. O que é Kubernetes?
    Kubernetes é uma poderosa plataforma open-source que gere aplicações em contentores como um maestro com uma orquestra. Garante que aplicações distribuídas correm de forma automática, eficiente e resiliente em múltiplos servidores. Ideal para escalar, atualizar ou reiniciar apps sem intervenção humana!
  2. Por que razão se usa Kubernetes?
    Porque simplifica radicalmente a gestão de aplicações em contentores! Permite escalar serviços automaticamente, lida com falhas de servidores sem downtime e implementa novas versões sem interrupções. Uma verdadeira revolução na fiabilidade e automação de infraestrutura.
  3. O que é um Pod em Kubernetes?
    Um Pod é a unidade mínima que o Kubernetes gere. É como um “pacote” que contém um ou mais contentores a correr em conjunto, partilhando armazenamento, rede e contexto. Exemplo? Um contentor de aplicação web + um contentor de logging a correr lado a lado.
Bash
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  containers:
  - name: my-app
    image: nginx
  1. Qual a diferença entre um Pod e um Node?
    Um Pod é um grupo de contentores, enquanto um Node é a máquina (física ou virtual) onde esses Pods são executados. Um único Node pode correr vários Pods simultaneamente, e o Kubernetes trata de distribuir tudo automaticamente.
  2. O que é um cluster Kubernetes?
    Um cluster é um conjunto de máquinas (Nodes) que trabalham em conjunto para executar e manter as aplicações. É controlado por um plano de controlo que toma decisões e gere a infraestrutura – o verdadeiro “cérebro” do Kubernetes.
  3. Para que serve o kubectl?
    kubectl é a ferramenta essencial de linha de comandos para interagir com um cluster Kubernetes. Permite criar, inspecionar e eliminar recursos com comandos simples como:
kubectl get pods
  1. O que é um Deployment em Kubernetes?
    É um recurso fundamental que gere o ciclo de vida de Pods. Garante que um número desejado de réplicas está sempre a correr e facilita atualizações automáticas sem downtime.
Bash
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: nginx
  1. Como se diferencia um ReplicaSet de um Deployment?
    ReplicaSet assegura que um número fixo de Pods está sempre ativo. Deployment vai além disso: gere ReplicaSets e facilita atualizações contínuas e reversões. Ideal para ciclos de desenvolvimento ágeis e ininterruptos.
  2. O que é um Service em Kubernetes?
    Service fornece um ponto de acesso estável para Pods. Mesmo que os Pods mudem de IP, o Service mantém-se fixo, funcionando como uma ponte entre aplicações.
Bash
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: my-app
  ports:
  - port: 80
    targetPort: 8080
  1. Para que servem Labels e Selectors?
    Labels são etiquetas atribuídas a recursos (como Pods) que os identificam e organizam. Selectors utilizam essas etiquetas para localizar grupos de recursos. Essencial para a automação e escalabilidade.
  2. O que é o plano de controlo (Control Plane)?
    É o centro nevrálgico do cluster Kubernetes. Contém componentes como o API Server, Scheduler e Controller Manager, que coordenam todos os Nodes, tomam decisões e asseguram consistência.
  3. O que é um Namespace?
    Namespaces criam ambientes isolados dentro do mesmo cluster, ideais para separar equipas ou ambientes (como dev, test e prod). Organizam e controlam o acesso a recursos.
Bash
kubectl create namespace dev
  1. Como verificar se um Pod está a correr corretamente?
    Comandos como:
Bash
kubectl get pods
kubectl describe pod my-pod
kubectl logs my-pod

Estes permitem saber se o Pod está em execução, identificar erros e consultar logs para diagnóstico.

  1. O que é um ConfigMap?
    Um ConfigMap guarda dados de configuração como variáveis de ambiente. Permite desacoplar a lógica da app da sua configuração.
Bash
apiVersion: v1
kind: ConfigMap
metadata:
  name: my-config
data:
  db_url: "mysql://db:3306"
  1. O que é um Secret em Kubernetes?
    Semelhante a um ConfigMap, mas usado para dados sensíveis como palavras-passe e tokens de API. Armazenados de forma segura e acessíveis pelos Pods.
Bash
apiVersion: v1<br>kind: Secret<br>metadata:<br>  name: my-secret<br>type: Opaque<br>data:<br>  password: cGFzc3dvcmQ= # codificado em Base64<br>

Artigos Relacionados