~/questoes/devops
Um Service no Kubernetes é um objeto que expõe seus Pods para comunicação interna ou externa, funcionando como um ponto de acesso estável. Ele substitui o sistema de rede do Docker Compose, fornecendo descoberta automática de serviços e distribuição inteligente de tráfego entre os Pods.
O Service é responsável por fazer a descoberta de serviços (permitir que Pods encontrem uns aos outros pelo nome), balancear a carga de requisições entre múltiplos Pods e expor a aplicação tanto internamente (dentro do cluster) quanto externamente (para o mundo). É como um 'intermediário' que redireciona o tráfego de forma inteligente.
Essa é a função do Deployment, não do Service. O Deployment gerencia réplicas dos Pods, define políticas de replicação e controla como os contêineres são criados e atualizados. O Service trabalha em conjunto com o Deployment, mas não gerencia o ciclo de vida.
Essa é a responsabilidade dos Secrets e ConfigMaps no Kubernetes. Secrets armazenam dados sensíveis como senhas e tokens, enquanto ConfigMaps guardam configurações. O Service não trata de armazenamento de dados.
Monitoramento e coleta de métricas são funções de ferramentas externas como Prometheus, Grafana ou o kubelet nativo. O Service não coleta métricas; ele apenas roteia o tráfego entre Pods.
O Service executa exatamente essas três funções: descobre Pods automaticamente pelo seletor de labels, distribui requisições entre eles (balanceamento de carga) e pode expor a aplicação internamente (ClusterIP) ou para fora do cluster (LoadBalancer, NodePort).