Kubernetes: Serviços e Pods: Difference between revisions

From Wiki
(Criou a página com "Não deixe de ler o artigo Kubernetes: Resumo dos Principais Conceitos Recapitulando: :* '''Pods''': o menor e mais simples objeto do Kubernetes. É a unidade de depl...")
 
No edit summary
Line 15: Line 15:
Imagine que você tenha um aplicação composta de um frontend (python) e um backend (um banco de dados).  
Imagine que você tenha um aplicação composta de um frontend (python) e um backend (um banco de dados).  


No Kubernetes não podemos acessar diretamente esses Pods, pois os mesmos podem ser criados/destruídos a qualquer momento para atender a demanda. Além disso essa aplicação pode estar distribuída em 1 ou mais Pods. Através do K8s atribuímos '''Labels''' para esses pods da seguinte forma app:frontend e app:backend.
No Kubernetes não podemos acessar diretamente esses Pods, pois os mesmos podem ser criados/destruídos a qualquer momento para atender a demanda. Além disso essa aplicação pode estar distribuída em 1 ou mais Pods, o que ficaria inviável para o cliente/usuário saber de todos os IPs utilizados.


Ao invés de acessarmos diretamente esses Pods, vamos criar uma camada denominada Serviços, onde atribuímos que nomeamos como frontend-svc e backend-svc.  
Ao invés de acessarmos diretamente esses Pods, vamos criar uma camada denominada Serviços, onde atribuímos que nomeamos como frontend-svc e backend-svc.  
Line 37: Line 37:




Na declaração desse serviços indicamos através do chave '''selector''', assim vamos selecionar todos os Pods que tem o label ''app'' definido como ''frontend''.
Através do K8s atribuímos '''Labels: Valores''' para os pods da seguinte forma app:frontend e app:backend.
 
No exemplo de declaração do serviços, usamos a chave '''selector''', para selecionar todos os Pods que tem o label ''app'' definido como ''frontend''.
 
O cliente/usuário agora pode conectar neste IP, então a sua requisição é encaminha para um dos Pods. O Serviço faz o balanceamento de carga.


O endereço IP definido para este serviço é também conhecido com ClusterIP.





Revision as of 02:24, 27 February 2019

Não deixe de ler o artigo Kubernetes: Resumo dos Principais Conceitos

Recapitulando:

  • Pods: o menor e mais simples objeto do Kubernetes. É a unidade de deployment no Kubernetes, que representa uma única instância do aplicativo.
Um Pod é uma coleção lógica de um ou mais contêineres, que:
  • São schedulados no mesmo host
  • Compartilham o mesmo network namespace
  • Monte o mesmo storage externo (volumes).
  • Services: é uma abstração que define um conjunto lógico de Pods e uma política para acesso a eles, algumas vezes chamamos de micro-serviços.

Exemplo

Imagine que você tenha um aplicação composta de um frontend (python) e um backend (um banco de dados).

No Kubernetes não podemos acessar diretamente esses Pods, pois os mesmos podem ser criados/destruídos a qualquer momento para atender a demanda. Além disso essa aplicação pode estar distribuída em 1 ou mais Pods, o que ficaria inviável para o cliente/usuário saber de todos os IPs utilizados.

Ao invés de acessarmos diretamente esses Pods, vamos criar uma camada denominada Serviços, onde atribuímos que nomeamos como frontend-svc e backend-svc.


Exemplo de Serviço

Neste trecho de declaração vemos como definir um serviço:

kind: Service
apiVersion: v1
metadata:
  name: frontend-svc
spec:
  selector:
    app: frontend
  ports:
    - protocol: TCP
      port: 80
      targetPort: 5000


Através do K8s atribuímos Labels: Valores para os pods da seguinte forma app:frontend e app:backend.

No exemplo de declaração do serviços, usamos a chave selector, para selecionar todos os Pods que tem o label app definido como frontend.

O cliente/usuário agora pode conectar neste IP, então a sua requisição é encaminha para um dos Pods. O Serviço faz o balanceamento de carga.



Ver também