Como o Kubernetes é estendido com tipos customizados. O padrão Operator é o que faz ferramentas como ArgoCD, cert-manager e Karpenter funcionarem.
Um CRD ensina o Kubernetes a entender um novo tipo de recurso. Depois de instalado, você pode usar kubectl get, kubectl apply e RBAC nesse novo tipo exatamente como faria com um Pod ou Service.
# Depois de instalar o cert-manager: kubectl get certificates -A kubectl describe certificate meu-tls -n prod # O K8s "aprendeu" o tipo Certificate # e o cert-manager controller o processa
Um Operator = CRD + Controller. O CRD define o novo tipo de recurso. O Controller (um pod rodando no cluster) observa esses recursos e age para atingir o estado desejado — exatamente como o Deployment Controller gerencia ReplicaSets.
Sincroniza o cluster com repositórios Git. Tudo que está no Git é aplicado no cluster automaticamente.
Gerencia ciclo de vida de certificados TLS: cria, renova e distribui automaticamente via Let's Encrypt ou ACM.
Sincroniza secrets do AWS Secrets Manager, Parameter Store e Vault para Kubernetes Secrets automaticamente.
Provisiona e remove nodes EC2 automaticamente baseado em pods Pending. Mais rápido e eficiente que Cluster Autoscaler.
Escala Deployments baseado em eventos externos (SQS, Kafka, Datadog). Suporta scale-to-zero.
Simplifica o deploy e configuração do Prometheus. Define targets de scrape como CRDs.
Alternativa ao ArgoCD para GitOps. Mais modular e nativo ao ecossistema Kubernetes.
Service mesh: mTLS automático entre services, traffic shaping, observabilidade sem mudar código.
kubectl get crdsListar todos os CRDs instalados no clusterkubectl get crds | grep argoVer CRDs de um operator específicokubectl explain certificate.specDocumentação do CRD direto no terminalkubectl get certificates -AUsar o CRD como qualquer outro recursokubectl api-resources | grep argoprojVer todos os recursos de um grupo de API