Compartilhamento de tecnologia

Tipos e uso de serviço exposto em k8s

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Descrição
No Kubernetes, existem várias maneiras diferentes de expor serviços ao tráfego externo. Esses modos são determinados pela definição do campo spec.type do serviço.
2. Explicação detalhada
1. ClusterIP
Definição: Tipo padrão, o serviço só pode ser acessado dentro do cluster.
Função: Expor serviços através do endereço IP interno do cluster.
Exemplo:

spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: 8080
  • 1
  • 2
  • 3
  • 4
  • 5

2. Porta do nó
Definição: Abra uma porta alta (geralmente 30000-32767) em cada nó para permitir que tráfego externo acesse o serviço.
Função: Acesse o serviço através do endereço IP e nodePort de qualquer nó.
Exemplo:

spec:
  type: NodePort
  ports:
    - port: 80
      targetPort: 8080
      nodePort: 30007
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3. Balanceador de carga

Definição: O balanceador de carga fornecido pela plataforma em nuvem atribui um endereço IP externo ao serviço.
Função: Acesse o serviço através deste endereço IP, adequado para situações onde é necessário balanceamento de carga de tráfego externo.
Exemplo:

spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 8080
  selector:
    app: my-app
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4. NomeExterno

Definição: mapeie um serviço para um nome de domínio externo (como um serviço de banco de dados).
Função: Acesse o serviço por meio do nome de domínio externo especificado, em vez de por meio do IP interno do cluster ou do IP do nó.
Exemplo:

spec:
  type: ExternalName
  externalName: example.com
  • 1
  • 2
  • 3

2. Resumo
ClusterIP: O tipo de serviço padrão, acessível apenas dentro do cluster.
NodePort: Abra uma porta em cada nó para permitir que o tráfego externo acesse os serviços.
LoadBalancer: O balanceador de carga fornecido pela plataforma em nuvem aloca um endereço IP externo, adequado para situações em que o balanceamento de carga é necessário.
ExternalName: mapeia o serviço para um nome de domínio externo, adequado para cenários que requerem acesso a serviços externos.