Estudando para a certificação CKA - O Início

O Início

Comprei o voucher para a certificação CKA em 2020 e posterguei meu estudo por diversas razões. Agora tomei a decisão de começar a estudar, além do fato que o voucher expira em Novembro.

Então, decidi fazer algumas anotações sobre o processo de estudo, por isso me desculpe se a página não parecer muito didática.

Nos meus estudos eu utilizo uma mescla de fontes, como:

Antes de qualquer coisa verifiquei o que eu precisava ter como conhecimento prévio, identifique alguns pontos, os quais cito abaixo.

  • por favor, se encontrar algum erro ou deseja sugerir algo, sinta-se a vontade para comentar

Sobre a CKA + o exame

O programa Certified Kubernetes Administrator (CKA) foi desenvolvido pela Cloud Native Computing Foundation (CNCF), em parceria com a The Linux Foundation, com o objetivo de desenolver o ecosistema do Kubernetes. – CKA

A certificação, Certified Kubernetes Administrator (CKA), é preparada de forma a garantir que seus certificados tenham a habilidade, conhecimento e competência de assumir responsabilidades como Administrador Kubernetes. A certificação CKA garante a esses administradores uma forma de garantir e trazer credibilidade para o mesmo em relação ao mercado de trabalho, ainda permite que empresas contratem/montem de maneira mais rápida uma equipe qualificada de modo a atender suas demandas. – Linux Foundation - FAQ

Abaixo uma descrição do escopo da prova CKA (source: Linux Foundation - CKA ):

Domínios & Competências
Armazenamento/Storage 10%
Resolução de problemas/Troubleshooting 30%
Workloads e Scheduling 15%
Arquitetura do Cluster, instalação e configuração 25%
Serviços & Rede/Conectividade 20%

Armazenamento/Storage : Entender o que são: storage classes, persistent volumes : Entender o que são: volume mode, access modes e reclaim policies em volumes : Entender o funcionamento de pvc’s : Saber configurar aplicações com persistent storage

Resolução de problemas/Troubleshooting : Avaliar/Analisar um cluster e logs dos nodes : Saber como monitorar aplicações : Gerir a saída de logs dos containers: stdout & stderr : Solucionar falhas de aplicação : Solucionar falhas de componentes no cluster : soulucionar falhas de conectividade/rede

Workloads e Scheduling : Entender o funcionamento de deployments e como executar rolling update e rollbacks : Usar ConfigMaps e Secrets para configurar aplicações : Saber como escalar aplicações : Saber os principios usados para criar/publicar aplicações, estabilidade, self-healing : Saber como os limites de recursos podem afetar o Scheduling de Pods : Conhecer ferramentas para gestão de manifestos e templates

Arquitetura do Cluster, instalação e configuração : Gerir role based access control (RBAC) : Usar Kubeadm para instalar um cluster : Gerir um Cluster Kubernetes com HA : Provisionar a infra necessária para levantar um cluster Kubernetes : Executar a atualização do cluster usando o Kubeadm : Implementar o backup e o restore do etcd

Serviços & Rede/Conectividade : Compreender o funcionamento e configuração das redes entre os nodes/nós do cluster : Compreender como funciona a conectividade entre os Pods : Compreender os tipos de serviço: ClusterIP, NodePort, LoadBalancer; e endpoints : Saber usar controladores e recursos Ingress : Configurar e usar o CoreDNS : Saber escolher o plugin que proverá a container network interface (cni) mais indicada


 O exame:
 - Disponível nas Línguas: Inglês, Japônes e Chinês simplificado Chinese
 - Online
 - Duração: 2 horas
 - Válido por 3 anos
 - Retake Gratuito
        * desde que, no momento de aplicação do voucher, não exteja identificado como SINGLE-ATTEMPT
 - Certificad em PDF e Badge Digital
 - Kubernetes v1.21
 - Simulador do Exame - verifique antes

Fontes:

O que é permitido?

De acordo com a documentação, durante o exame, é permitido ao candidato:

Requisitos

Conhecimentos necessários,

O que é Kubernetes ???

De acordo com a documentação oficial:

Kubernetes é um plataforma de código aberto, portável e extensiva para o gerenciamento de cargas de trabalho e serviços distribuídos em contêineres, que facilita tanto a configuração declarativa quanto a automação. Ele possui um ecossistema grande, e de rápido crescimento. Serviços, suporte, e ferramentas para Kubernetes estão amplamente disponíveis. – Kubernetes Docs

Mais sobre:

Após levantar o Kubernetes, você obtem um cluster. Esse cluster é composto por Nós, com funções diferentes e bem definidas.

Pod - Uma parte essencial

Pods: are the smallest deployable units of computing that you can create and manage in Kubernetes. – Kubernetes Docs - Pods

Um pod compartilha o contexto de: namespaces, cgroups e demais aspectos sob uma área isolada.

É comum ficar confuso quando se compara Pods e Containers. De um modo simplificado, um container roda um microserviço e um Pod deve conter 1 ou mais containers.

Um Pod atua como uma máquina que provê diversos e distintos containers.

De modo geral, a razão para um Pod conter múltiplos containers é para poder compartilhar recursos, como rede, pontos de montagem (diretórios ou storages associados a eles).

O Kubernetes gerencia os Pods e se necessário pode criar novas instâncias do mesmo Pod, o Kubernetes aumenta o número de Pods escalonando a aplicação de maneira horizontal, conhecido como Replicação/Replication. E mais, Kubernetes provê a recuperação automática dos serviços e analiza a carga dos recursos (memória, cpu, etc…).

Abaixo um exemplo de um Pod, com um único container:

apiVersion: batch/v1
kind: Job
metadata:
  # Nome do pod
  name: hello
spec:
  template:
    # Esse é o template do Pod, o modelo para instância
    spec:
      containers:
      - name: hello
        # Container
        image: busybox
        command: ['sh', '-c', 'echo "Hello, Kubernetes!" && sleep 3600']
      restartPolicy: OnFailure
    # Fim do template

Abaixo um outro exemplo de um Pod, porém com múltiplos containers, observe que eles compartilham o mesmo dirétório.

  • este exemplo usa um diretório no Node(hospedeiro), conhecido por ephemeral storage
apiVersion: v1
kind: Pod
metadata:
  name: two-containers
spec:
  restartPolicy: Never
  volumes:
  - name: shared-data
    emptyDir: {}
  containers:
  - name: nginx-container
    image: nginx
    volumeMounts:
    - name: shared-data
      mountPath: /usr/share/nginx/html
  - name: debian-container
    image: debian
    volumeMounts:
    - name: shared-data
      mountPath: /pod-data
    command: ["/bin/sh"]
    args: ["-c", "echo Hello from the debian container > /pod-data/index.html"]

Referências:

  1. Pods and Containers
  2. What’s the difference between a pod, a cluster, and a container?

Componentes Kubernetes

Kubernetes tem uma tonelada de componentes, mas na maior parte do tempo você só usará alguns deles – Janashia, Nana (TechWorld)

É verdade, porém não se anime, não será tão fácil assim, afinal a certificação cobre todos eles, por isso será necessário aprender e entender cada um deles.

Os Nodes, citados anteriormente, tem diferentes categorias:

  • Worker - roda os Pods (um conjunto de container ativos)
    • Todo cluster deve ter ao menos 1 Worker Nodes
  • Control Plane - gerencia os Worker Nodes e os Pods
    • A gestão dos Pods contempla inclusive em que Worker Node ele, o Pod, deve rodar.

comments powered by Disqus