Programming On Mars Logo
  • Início
  • Artigos
  • Laboratórios
Programming On Mars Logo
  • Início
  • Artigos
  • Laboratórios

  • Andre Lucas
  • Fri Aug 16 2024

Gerenciando Pods usando ReplicaSet

ReplicaSet Header

Para seguir este artigo você pode obter os arquivos em - https://github.com/ProgrammingOnMars/kubernetes-for-dev

Quando um pod é criado, este pod não é gerenciado por nada. Assim, um pod pode ser parado por qualquer motivo, talvez erro na aplicação, ou erros de rede. Então, precisamos de um mecanismo para manter a aplicação disponível.

Quando um Pod é parado por qualquer motivo sua aplicação não estará disponível, mas você provavelmente não quer isso. Você precisa de um mecanismo para reiniciar ou criar outros pods para manter a aplicação disponível novamente.

Outra razão é quando você quer criar um balanceamento de carga para distribuir as cargas de trabalho da sua aplicação.

Como um ReplicaSet funciona

O ReplicaSet gerencia o estado dos pods, sua quantidade para garantir balanceamento de carga entre os nodes, e a quantidade mínima de pods.

Vamos criar um ReplicaSet

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: programmingonmars-replicaset
  labels:
    app: programmingonmars
spec:
  replicas: 3
  selector:
    matchLabels:
      app: programmingonmars
  template:
    metadata:
      labels:
        app: programmingonmars
    spec:
      containers:
      - name: programmingonmars-container
        image: andrelucastic/demo:latest
        ports:
        - containerPort: 8080

O número de replicas indica o número de Pods que devem ser mantidos

O template são os dados (características) dos novos Pods. Quando um ReplicaSet precisa criar um novo Pod ele usa seu template

Vamos aplicar este arquivo de configuração no cluster

kubectl apply -f 03-managing-pods-using-replica-set/replica-set.yml

Agora vamos ver o ReplicaSet criado usando o comando

kubectl get replicaset

ReplicaSet Output

Desire - O número de Pods que declaramos no arquivo.

Current - Os pods que estão em execução no cluster e que estão sendo gerenciados pelo replica set.

Ready - Os pods que estão em execução.

Vamos ver se a aplicação está funcionando usando por enquanto o comando:

kubectl port-forward replicaset/programmingonmars-replicaset 8000:8080

E podemos ver acessando localhost:8000 usando o terminal ou o navegador.

Curl Output

Vamos acessar a URL

Updated Curl Output

Suponha que temos 10, 100, 1000 pods? Sim, usando ReplicaSet precisaríamos deletar todos esses pods.

Mas precisamos resolver isso usando deployments

Veremos no próximo post. Até lá!

Tags: Microservice, Kubernetes, replicaset, k8s

Tags:
KubernetesReplicaSetk8sDevOps
  • Política de Privacidade
  • Termos de Serviço
  • Contato
© 2025 Programming On Mars. Todos os direitos reservados.