StatefulSets
StatefulSets e Services
O que é um StatefulSet?
Os StatefulSets são uma funcionalidade do Kubernetes que gerencia o deployment e o scaling de um conjunto de Pods, fornecendo garantias sobre a ordem de deployment e a singularidade desses Pods. Diferente dos Deployments e Replicasets que são considerados stateless (sem estado), os StatefulSets são utilizados quando você precisa de mais garantias sobre o deployment e scaling. Eles garantem que os nomes e endereços dos Pods sejam consistentes e estáveis ao longo do tempo. Os StatefulSets funcionam criando uma série de Pods replicados. Cada réplica é uma instância da mesma aplicação que é criada a partir do mesmo spec, mas pode ser diferenciada por seu índice e hostname.
O StatefulSet e os Volumes Persistentes
Um aspecto chave dos StatefulSets é a integração com Volumes Persistentes. Quando um Pod é recriado, ele se reconecta ao mesmo Volume Persistente, garantindo a persistência dos dados entre as recriações dos Pods.
O que são os Headless Services?
Os Headless Services são um tipo de serviço que não possui um IP Cluster. Eles são utilizados para descoberta de Pods através de DNS. Quando um Headless Service é criado, o Kubernetes cria um DNS A Record para cada Pod que faz parte do Service. Isso permite que os Pods sejam acessados diretamente através de seu nome.
O StatefulSet e os Headless Services
Os StatefulSets e os Headless Services são utilizados em conjunto para garantir que os Pods tenham nomes e endereços consistentes e estáveis ao longo do tempo. Quando um StatefulSet é criado, o Kubernetes cria um Headless Service para o StatefulSet. Esse Headless Service é utilizado para descoberta de Pods através de DNS.