ReplicaSet
- É um controller (Replication Controller);
- Garante que um determinado número de pods esteja rodando;
- ReplicaSet é um conjunto de pods que possibilita a execução e controle de réplicas. Visando garantir a disponibilidade de um número especificado/desejado de pods.
- ReplicaSet utiliza
apiVersion: apps/v1
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: teste
labels:
tier: "frontend"
spec:
replicas: 10
selector:
matchLabels:
tier: "frontend"
template:
metadata:
name: replicase-teste
labels:
tier: "frontend"
spec:
containers:
- image: nginx
name: nginx
- image: redis
name: redis
- o
metadata.labels
devem bater comspec.template.metadata.labels
- pode-se utilizar dois tipos de seletores
matchLabels
ematchExpressions
matchLabels
:matchExpressions
:
- Quando for criar um replicaset em que já existam pods com os seletores iguais, ele vai capturar os podes para o replicaset
- Não se pode atualizar informações do replicaset. É possível alterar o replicaset e manualmente matar os pods. Para ter atualização nesse nível, utilizase o [[Deployments]]
- Pode conter pods que não foram criados pelo
.spec.template
, mas que casam comspec.selector
. Os pods criados fora do replicaset serão contabilizados na contagem despec.replicas
.spec.template
é necessário neste cenário, ja que se um dos pods existentes morrer, ele têm que criar mais um para manter o [[Desired State]]
[!NOTE]- Replication Controller
filePath: "@/Attachments/Kubernetes/replicaset/teste-replicationcontroller.yaml"
[!NOTE]- Replicaset with
spec.selector.matchExpressions
filePath: "@/Attachments/Kubernetes/replicaset/teste-replicaset-matchexpressions.yaml"
[!NOTE]- Replicaset with
spec.selector.matchLabels
filePath: "@/Attachments/Kubernetes/replicaset/teste-replicaset-matchlabels.yaml"
[!NOTE]- Replicaset with
spec.selector.matchLabels
and existing pods
filePath: "@/Attachments/Kubernetes/replicaset/teste-replicaset-matchlabels-existing-pods.yaml"
Comandos úteis
Recupera replicaset dos nós
kubectl get replicaset
oukubectl get rs
Recupera informações sobre todos os replicasets
kubectl describe replicaset
Recupera informações sobre um replicaset específico
kubectl describe replicaset name-replicaset
Cria replicaset
kubectl create -f replicaset-file-definition.yml
deleta replicaset
kubectl delete replicaset name-replicaset
escala o número de pods do replicaset
kubectl scale replicaset --replicas=5 name-replicaset