- Get link
- X
- Other Apps
Esses são os principais componentes do Kubernetes e cada um desempenha um papel importante na gestão, escalabilidade e manutenção de aplicativos em um ambiente Kubernetes.
1. Job
Um Job em Kubernetes é responsável por criar um ou mais pods e garantir que um número específico de pods termine com sucesso. Ele é usado para tarefas de execução única, como processar um lote de dados ou realizar uma migração de banco de dados.
- Caso: Processar uma lista de arquivos uma vez e depois encerrar.
apiVersion: batch/v1
kind: Job
metadata:
name: example-job
spec:
template:
spec:
containers:
- name: my-container
image: busybox
command: ["echo", "Hello Kubernetes!"]
restartPolicy: Never
2. Namespace
Um Namespace é uma forma de segmentar o cluster em diferentes ambientes virtuais, permitindo que múltiplos ambientes (como produção, desenvolvimento e teste) coexistam no mesmo cluster de forma isolada.
- Caso: Separar recursos para `dev`, `staging` e `production`.
apiVersion: v1
kind: Namespace
metadata:
name: dev-environment
3. Volume
Um Volume em Kubernetes é um diretório que pode ser montado em um ou mais pods. Ao contrário do armazenamento temporário de um contêiner, um volume persiste os dados, mesmo que o contêiner seja reiniciado.
- Caso: Montar um volume persistente para um banco de dados.
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-data
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data
4. Ingress
O Ingress é um recurso que gerencia o acesso externo aos serviços em um cluster Kubernetes, geralmente HTTP e HTTPS, fornecendo um balanceamento de carga e roteamento baseado em regras.
- Caso: Roteamento de tráfego para serviços diferentes com base no caminho da URL.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: myapp.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api-service
port:
number: 80
5. DaemonSet
Um DaemonSet garante que uma cópia de um pod seja executada em todos (ou em alguns) nós do cluster. Isso é útil para serviços como coleta de logs, monitoramento de nós, etc.
- Caso: Instalar um agente de monitoramento em todos os nós.
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: monitoring-agent
spec:
selector:
matchLabels:
app: agent
template:
metadata:
labels:
app: agent
spec:
containers:
- name: agent
image: monitoring-agent:latest
6. Service
Um Service é um recurso que expõe um ou mais pods em um cluster, permitindo que eles sejam acessíveis de forma estável, mesmo que os pods sejam reiniciados ou substituídos.
- Caso: Expor um conjunto de pods como um serviço acessível por um IP fixo dentro do cluster.
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
7. Operator
Um Operator é um controlador personalizado que estende o Kubernetes para gerenciar aplicativos de forma específica ao domínio. Ele lida com a lógica de ciclo de vida do aplicativo, como backups automáticos ou escalonamento com base em métricas personalizadas.
8. ClusterRole
Um ClusterRole define permissões que podem ser aplicadas em um nível de cluster, permitindo acesso a recursos como `nodes`, `persistentvolumes`, etc.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cluster-admin-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
9. Secret
Um Secret é usado para armazenar informações sensíveis, como senhas, tokens ou chaves SSH, de forma segura no cluster.
- Caso: Armazenar credenciais para um banco de dados.
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
username: YWRtaW4= # base64 encoded
password: c2VjcmV0
10. ReplicaSet
Um ReplicaSet garante que um número específico de réplicas de um pod esteja em execução a qualquer momento. Ele substitui o ReplicationController .
- Caso: Manter 3 réplicas de um pod em execução.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx
11. CronJob
Um CronJob é usado para executar tarefas recorrentes com base em uma programação (usando o formato `cron`). É útil para tarefas agendadas como backups.
- Caso: Executar um script diariamente às 3h.
apiVersion: batch/v1
kind: CronJob
metadata:
name: daily-task
spec:
schedule: "0 3 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: my-job
image: busybox
command: ["echo", "Daily Task"]
restartPolicy: OnFailure
12. Event
Events são registros de atividades que ocorrem no cluster. Eles são úteis para depuração, fornecendo detalhes sobre o que está acontecendo com os recursos.
13. ConfigMap
Um ConfigMa é usado para armazenar dados de configuração em pares chave-valor, permitindo que contêineres usem essas configurações sem precisar recriar imagens.
- Caso : Configurar variáveis de ambiente para um pod.
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
APP_MODE: production
LOG_LEVEL: debug
14. Deployment
Um Deployment fornece atualizações declarativas para pods e ReplicaSets, permitindo a implantação e o escalonamento de aplicações de forma controlada.
- Caso: Implantar uma aplicação com 2 réplicas.
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx
15. ServiceMonitor
O ServiceMonitor é usado com o Prometheus Operator para monitorar serviços expostos no cluster. Ele especifica quais serviços devem ser monitorados e como.
16. Endpoint
Um Endpoint é uma lista de endereços IP de pods ou serviços que representam as instâncias para um serviço Kubernetes. É usado para rotear o tráfego para os pods corretos.
ClusterRole
ConfigMap
CronJob
DeamonSet
Deployment
Endpoint
Event
Ingress
Job
K8s
Kubernetes
Namespace
Operator
ReplicaSet
Secret
Service
ServiceMonitor
Volume
- Get link
- X
- Other Apps
Comments