Agner Loss Rodrigues Gestor de Tecnologia • Saúde Pública • Cloud & DevOps
Certificação CKA

📚 Certified Kubernetes Administrator

Referência técnica por domínio de prova + diário de estudo — Linux Foundation (LFS258) · PICK · Killercoda

Navegação rápida

Fundamentos

Introdução ao Curso e à Prova

LFS258 · Linux Foundation · 2026

O curso Kubernetes Fundamentals (LFS258) prepara para a certificação CKA e cobre desde a instalação e configuração de clusters até segurança, alta disponibilidade e troubleshooting. Não exige experiência prévia com Kubernetes — apenas conhecimento básico de Linux. O CKA é um exame hands-on de 2 horas com 15–20 tarefas em ambiente real de linha de comando, com nota mínima de 66% para aprovação e direito a uma segunda tentativa gratuita.

🔑 Conceitos-chave

ConceitoO que é
Linux FoundationOrganização sem fins lucrativos que hospeda projetos open source críticos (Linux, Kubernetes, Node.js). Oferece cursos e certificações reconhecidas globalmente.
CKACertified Kubernetes Administrator. Prova hands-on, 2h, ambiente real, nota mínima 66%. Custa US$ 395 (inclui 1 retake gratuito em 12 meses).
CNCFCloud Native Computing Foundation — responsável por manter e certificar o Kubernetes.
LFS258Código do curso Kubernetes Fundamentals da Linux Foundation. Material atualizado em junho/2026.
💡 Para fixar O CKA é inteiramente prático — não tem questões de múltipla escolha. Você opera um cluster real dentro de um terminal. Quanto mais labs práticos você fizer, maior a chance de passar na primeira tentativa.

Fundamentos do Kubernetes

LFS258 · Basics of Kubernetes

Kubernetes (κυβερνήτης = timoneiro em grego, abreviado K8s) é um orquestrador de contêineres open source criado pelo Google em 2014, baseado em 15 anos de experiência com os sistemas internos Borg e Omega. Automatiza o deploy, escalonamento e gerenciamento do ciclo de vida de contêineres em infraestruturas distribuídas. Segundo a pesquisa CNCF 2025, 82% das organizações que usam contêineres rodam Kubernetes em produção.

🔑 Conceitos-chave

Objeto/ConceitoFunção
PodMenor unidade do K8s. Agrupa 1+ contêineres que compartilham IP, storage e namespace.
DeploymentOperador padrão para gerenciar pods. Não controla pods diretamente — gerencia ReplicaSets.
ReplicaSetGarante que o número desejado de pods esteja sempre rodando.
ServiceAtribui IP estável e roteia tráfego entre pods usando labels.
NamespaceIsola recursos dentro do cluster. Permite multi-tenancy.
kubeletAgente que roda em cada nó. Garante que os contêineres estejam alinhados com o estado declarado.
kube-proxyGerencia regras de rede em cada nó.
kube-apiserverPonto central de comunicação do cluster.
kube-controller-managerContém controllers internos (Deployment, ReplicaSet etc.).
etcdBanco de dados chave-valor que armazena o estado do cluster.
LabelsPares chave-valor nos metadados dos objetos. Permitem consulta e seleção eficiente.
Taints / TolerationsTaints nos nós evitam agendamento de pods; Tolerations nos pods contornam esse bloqueio.
CRDCustom Resource Definition — estende a API do K8s com novos tipos de objetos.

🏗️ Arquitetura resumida

CamadaComponentes principais
Control Planekube-apiserver, kube-controller-manager, kube-scheduler, etcd. Mínimo 3 nós para HA.
Worker Nodeskubelet, kube-proxy, container runtime. Suporta Linux e Windows Server 2019/2022.
💡 Para fixar Kubernetes é desacoplado e transitório: ele espera que componentes falhem e se recupera automaticamente. O teste mental "e se um pod morrer aleatoriamente agora?" é a essência do design cloud native.

Troubleshooting

30% da prova
🚧 Em construção — maior peso da prova, prioridade de estudo

Cluster Architecture, Installation & Configuration

25% da prova

Ambiente de Estudo Local — kind + kubectl

PICK · Day-1 · Introdução

Antes de estudar os conceitos do Kubernetes na prática, é preciso de um cluster local rápido de montar. O kind (Kubernetes IN Docker) sobe um cluster inteiro dentro de contêineres Docker em segundos. É ideal pra treinar comandos do dia a dia — mas não substitui prática com kubeadm real, que é o que a prova cobra na parte de instalação.

🛠️ Instalação passo a passo

EtapaComando
1. Dockercurl -fsSL https://get.docker.com | bash
2. kindcurl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.13.0/kind-linux-amd64
chmod +x ./kind && mv kind /usr/local/bin
kind create cluster
3. kubectlcurl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

⚡ Alias e autocomplete

O quêComando
Autocompletesource <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
Alias k=kubectlalias k=kubectl
complete -F __start_kubectl k
💡 Para fixar O alias k + autocomplete economiza segundos preciosos numa prova de 2h cronometradas. Configurar isso deveria ser reflexo, não escolha consciente.

Instalação e Configuração (kubeadm)

LFS258 · Installation and Configuration

Este capítulo cobre a construção de um cluster Kubernetes real usando kubeadm, a ferramenta oficial de bootstrap — o que efetivamente cai na prova CKA. Envolve provisionar o control plane, adicionar workers ao cluster (join) e configurar a rede de pods via um plugin CNI.

🔑 Conceitos-chave

ConceitoO que é
kubeadmFerramenta oficial que automatiza o bootstrap de um cluster mínimo viável.
Container runtimeSoftware que efetivamente roda os contêineres (containerd, CRI-O). Precisa estar instalado antes do kubeadm.
kubeadm initInicializa o primeiro nó do control plane. Gera certificados e o comando de join.
kubeadm joinUsado em cada novo nó pra se juntar ao cluster existente, via token e hash de certificado.
CNIPlugin de rede (Calico, Flannel, Cilium) necessário após o init pros pods se comunicarem entre nós. Sem isso, nós ficam NotReady.
kubeconfigArquivo (~/.kube/config) com credenciais e endereço do cluster pro kubectl se conectar.
static podsComponentes do control plane rodam como pods estáticos gerenciados pelo kubelet local, não pelo scheduler.

🛠️ Fluxo típico

EtapaO que acontece
1. Pré-requisitosContainer runtime em todos os nós, swap desabilitado, kernel/rede ajustados.
2. Instalar pacoteskubeadm, kubelet, kubectl via repositório oficial.
3. kubeadm initSó no primeiro control plane. Gera o token de join.
4. Instalar CNISem isso, CoreDNS fica pendente e nós não ficam Ready.
5. kubeadm joinNos demais nós, usando o token gerado.
💡 Para fixar Na prova, o cluster já vem parcialmente montado — raramente você faz kubeadm init do zero, mas é comum precisar fazer join de um novo nó ou diagnosticar por que um nó não entrou no cluster (token expirado, CNI não instalado, runtime não configurado).

Services & Networking

20% da prova
🚧 Em construção

Workloads & Scheduling

15% da prova

Pods — Criação, Edição e Multi-container

PICK · Preparação CKA · Pods

O Pod é a menor unidade implantável do Kubernetes. Este capítulo cobre a estrutura mínima de um manifesto de Pod, os fluxos de criação/edição via kubectl e como declarar múltiplos contêineres num mesmo Pod, compartilhando rede e, opcionalmente, volumes.

🔑 Conceitos-chave

ConceitoO que é
PodMenor unidade do K8s. Um ou mais contêineres compartilhando IP, rede e, opcionalmente, storage.
Campos mutáveiskubectl edit só permite alterar campos limitados (ex: image, tolerations). Pra mudar o resto, é preciso recriar o Pod.
Multi-container PodContêineres no mesmo Pod acessam uns aos outros via localhost, cada um com seu próprio filesystem.
Sidecar containerDesde o K8s 1.28, initContainers com restartPolicy: Always rodam como sidecar de longa duração, junto ao container principal.

🛠️ Comandos essenciais

AçãoComando
Gerar YAML sem aplicarkubectl run nginx --image nginx -o yaml --dry-run=client
Substituir forçando recriaçãokubectl replace -f pod.yaml --force --grace-period=0
Editar pod (campos mutáveis)kubectl edit po nome-do-pod
Extrair YAML de pod rodandokubectl get po nome-do-pod -o yaml > pod.yaml
Logs em pod multi-containerkubectl logs nome-do-pod -c nome-do-container
💡 Para fixar Não existe "atualizar um Pod" de verdade — na prática, quase tudo que não é campo mutável exige apagar e recriar (replace --force --grace-period=0). Isso é diferente de Deployment, que gerencia esse ciclo pra você via ReplicaSet.

Command e Args — Sobrescrevendo Entrypoint e Cmd

PICK · Preparação CKA · Command

O Kubernetes espelha o conceito de ENTRYPOINT/CMD do Docker através dos campos command e args na definição do Pod. Entender a diferença entre os dois é essencial pra customizar o comportamento de um container sem precisar reconstruir a imagem.

🔑 Conceitos-chave

DockerKubernetesFunção
ENTRYPOINTcommandComando executado no container. Definir command substitui o ENTRYPOINT inteiro.
CMDargsArgumentos passados pro comando. Definir args substitui só o CMD, mantendo o ENTRYPOINT original.

🧩 Tabela de combinações

Image EntrypointImage CmdContainer commandContainer argsComando executado
[/echo][foo]não definidonão definidoecho foo
[/echo][foo][/printf]não definidoprintf
[/echo][foo]não definido[bar]echo bar
[/echo][foo][/printf][bar]printf bar

📝 Questão de prova (estilo real)

Um Dockerfile define ENTRYPOINT ["sleep"] e CMD ["5"]. Tarefa: criar um Pod que faça o container dormir 10 segundos em vez de 5, sem trocar o ENTRYPOINT.

apiVersion: v1
kind: Pod
metadata:
  name: ubuntu-sleeper-pod
spec:
  containers:
  - name: ubuntu-sleeper
    image: ubuntu-sleeper
    args: ["10"]
💡 Para fixar Pegadinha clássica: se você define command sem definir args, o Cmd original da imagem some por completo — mesmo que não tenha relação com o que você queria mudar. Sempre replique os args originais se só quiser trocar o comando.

Storage

10% da prova
🚧 Em construção

📅 Diário de Estudo CKA

24/09

Command e args — sobrescrevendo ENTRYPOINT/CMD

Aula Command do PICK: diferença entre command/args do Kubernetes e ENTRYPOINT/CMD do Docker, tabela de combinações e exercício clássico do ubuntu-sleeper. Próximo: ReplicaSet e Deployment.

24/09

Pods — criação, edição e multi-container concluído

Aula de Pods do PICK finalizada: manifesto mínimo, fluxo de criação/edição/replace via kubectl e Pod com múltiplos contêineres. Decisão de metodologia: parar de imprimir PDF pra fichário e trabalhar direto do blog com duas telas.

24/09

Retomada — Day 1 revisado do zero

Recomecei a trilha "Preparação CKA" do PICK do zero, mesmo em 84% de progresso geral. Setup de ambiente local: Docker, kind, kubectl, alias k e autocomplete configurados. Próximo: aula de Pods.

Atualizado conforme o estudo avança · Certificação CKA · ← Voltar ao início