Aula 05 – Kubernates – ReplicaSet
Aula 05 – Kubernates – ReplicaSet
Voltar para página principal do blog
Todas as aulas desse curso
Aula 04 Aula 06
Redes Sociais:
Site das bibliotecas
Tensorflow
Keras
Cursos Gratuitos
Digital Innovation
Quer aprender python3 de graça e com certificado? Acesse então:
workover
Empresas de Cloud:
Hostinger
Digital Ocean
One.com
Canais do Youtube
Toti
Lofi Music Zone Beats
Backing Track / Play-Along
Código Fluente
Putz!
Vocal Techniques and Exercises
Fiquem a vontade para me adicionar ao linkedin.
PIX para doações
Aula 05 – Kubernates – ReplicaSet
Documentação do Minikube: https://minikube.sigs.k8s.io/docs
Documentação do Kubernates: https://kubernetes.io/docs/home/
Github do Kubernates: https://github.com/kubernetes/kubernetes
Playground: https://killercoda.com/kubecon
Introdução
Bem-vindos à aula sobre ReplicaSets.
Nesta aula, vamos explorar o conceito e entender como funciona no ecossistema do Kubernetes.
O que é um ReplicaSet?
Um ReplicaSet é um recurso do Kubernetes cujo propósito é manter um conjunto estável de réplicas de Pods em execução a qualquer momento.
Isso é frequentemente usado para garantir a disponibilidade de um número especificado de Pods idênticos.
Como um ReplicaSet funciona
Um ReplicaSet é definido com campos, incluindo um seletor que especifica como identificar os Pods que ele pode adquirir, um número de réplicas que indica quantos Pods ele deve manter e um modelo de pod que especifica os dados dos novos Pods que ele deve criar para atender aos critérios do número de réplicas.
Um ReplicaSet cumpre o seu propósito criando e excluindo Pods conforme necessário para atingir o número desejado.
Quando um ReplicaSet precisa criar novos Pods, ele utiliza o seu modelo de Pod.
Um ReplicaSet está vinculado aos seus Pods por meio do campo metadata.ownerReferences dos Pods, que especifica qual recurso é proprietário do objeto atual.
Todos os Pods adquiridos por um ReplicaSet têm as informações identificadoras do ReplicaSet proprietário em seu campo ownerReferences.
É por meio dessa ligação que o ReplicaSet tem conhecimento do estado dos Pods que está mantendo e planeja de acordo.
Um ReplicaSet identifica os novos Pods a serem adquiridos usando seu seletor.
Se houver um Pod que não tenha OwnerReference ou a OwnerReference não for um controlador e ele corresponder ao seletor do ReplicaSet, ele será imediatamente adquirido pelo ReplicaSet em questão.
Quando usar um ReplicaSet?
Um ReplicaSet garante que um número especificado de réplicas de pods esteja em execução a qualquer momento.
No entanto, um Deployment é um conceito de nível superior que gerencia ReplicaSets e fornece atualizações declarativas para Pods, juntamente com muitos outros recursos úteis.
Portanto, recomendamos o uso de Deployments em vez de usar diretamente os ReplicaSets, a menos que você necessite de uma orquestração de atualizações personalizadas ou não necessite de atualizações.
Exemplo
Vamos dar uma olhada em um exemplo de uso de ReplicaSet.
replica-set.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx-replicaset
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
- apiVersion: Especifica a versão da API do Kubernetes que estamos usando. Neste caso, é apps/v1, que é a versão para recursos de aplicativos, incluindo ReplicaSets.
- kind: Indica que estamos criando um objeto do tipo ReplicaSet.
- metadata: Aqui, definimos informações sobre o objeto, como nome e rótulos.
- spec: A seção spec é onde você define as especificações do ReplicaSet.
- replicas: Este campo especifica o número de réplicas desejadas do seu aplicativo. Neste caso, estamos definindo para 3 réplicas do contêiner NGINX.
- selector: O seletor é usado para identificar os Pods que fazem parte deste ReplicaSet.
- matchLabels: Aqui, estamos definindo que os Pods pertencentes a este ReplicaSet devem ter um rótulo com a chave app igual a nginx.
- template: Nesta seção, você define o modelo para os Pods que serão criados pelo ReplicaSet.
- metadata: Aqui, definimos os rótulos que serão aplicados aos Pods criados a partir deste modelo.
- spec: Esta parte descreve as especificações dos contêineres que serão executados nos Pods.
- containers: É onde você define os contêineres que serão executados nos Pods.
- name: Define o nome do contêiner.
- image: Especifica a imagem do contêiner, neste caso, NGINX com a versão 1.14.2.
- ports: Aqui, você pode definir as portas que o contêiner expõe. Neste exemplo, o contêiner expõe a porta 80.
Esse YAML cria um ReplicaSet chamado nginx-replicaset que garante que três réplicas de um contêiner NGINX sejam executados, cada um com um rótulo app: nginx.
Inicie o minikube
minikube start
Veja o status
minikube status
Para aplicar o manifesto declarativo do ReplicaSet, rode o comando:
kubectl apply -f replica-set.yaml
Para deletar o ReplicaSet chamado replica-set, rode o comando:
kubectl delete replicaset nginx-replicaset
Na próxima aula vamos explorar Deployments.