GitHub EN PT

K8s em Exemplos: Visão Geral

Kubernetes orquestra containers em um cluster de máquinas. Este guia mostra como os componentes principais se encaixam: Cluster, Nodes, Pods, Deployments e Services.

cluster-overview

Um Cluster é um conjunto de máquinas (nodes) executando Kubernetes. O Control Plane gerencia o cluster, os worker nodes executam suas aplicações.

Cluster Control Plane Worker Nodes API Server Scheduler etcd Node 1 Node 2
node

Um Node é uma máquina (física ou virtual) no cluster. Cada node executa kubelet (agente), kube-proxy (rede) e um container runtime. Nodes hospedam Pods.

Node kubelet - talks to API kube-proxy - networking container runtime - runs pods Pod A Pod B Pod C
pod

Um Pod é a menor unidade implantável. Ele envolve um ou mais containers que compartilham rede (mesmo IP) e armazenamento. Containers em um Pod comunicam via localhost.

Pod - IP: 10.244.1.5 localhost nginx :80 sidecar :9090 Shared Volume
deployment-replicaset-pod

Deployment gerencia ReplicaSets, que garantem N cópias de um Pod em execução. Você define o estado desejado, Kubernetes mantém. Deployments lidam com rolling updates.

Deployment - replicas: 3 ReplicaSet Pod nginx Pod nginx Pod nginx
service

Um Service fornece IP estável e nome DNS para acessar Pods. Pods são efêmeros (vêm e vão), mas Services dão um endpoint fixo. Balanceia carga entre Pods correspondentes.

requests Service: nginx-service Pod 10.244.1.5 Pod 10.244.2.3 Pod 10.244.3.7
namespace

Namespaces dividem um cluster em clusters virtuais. Use para separar times, ambientes (dev/prod) ou projetos. Recursos em namespaces diferentes são isolados por padrão.

Cluster ns: dev ns: prod nginx-svc nginx-pod nginx-svc nginx-pod
labels-selectors

Labels são tags chave-valor em recursos. Selectors encontram recursos por labels. É assim que Services encontram Pods, e como você organiza recursos.

matches matches no match Service selector: app=nginx Pod app=nginx Pod app=nginx Pod app=redis
configmap-secret

ConfigMap armazena configuração (env vars, arquivos de config). Secret armazena dados sensíveis (senhas, tokens). Ambos injetam dados em Pods sem hardcode.

DB_HOST, LOG_LEVEL DB_PASS, API_KEY ConfigMap Secret Pod
full-picture

Juntando tudo: Deployments gerenciam Pods, Services os expõem, ConfigMaps/Secrets os configuram, tudo organizado em Namespaces.

namespace: production Deployment requests configures users Service ConfigMap + Secret Pod Pod Pod
terminal

Veja todos os recursos principais no namespace atual. Isso mostra Pods, Services, Deployments e ReplicaSets de uma só vez.

$ kubectl get all
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-6799fc88d8-7xj2k   1/1     Running   0          5m
pod/nginx-6799fc88d8-9abc2   1/1     Running   0          5m
pod/nginx-6799fc88d8-def34   1/1     Running   0          5m

NAME                 TYPE        CLUSTER-IP     PORT(S)   AGE
service/nginx        ClusterIP   10.96.100.50   80/TCP    5m

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx   3/3     3            3           5m

NAME                               DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-6799fc88d8   3         3         3       5m

Índice | Use as setas do teclado para navegar