Kubernetes: Serviços e Pods: Difference between revisions
(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 | 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: | ||
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. | |||
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.