Condivisione della tecnologia

Tipi e utilizzo del servizio esposti in k8s

2024-07-12

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

1. Descrizione
In Kubernetes esistono diversi modi per esporre i servizi al traffico esterno. Queste modalità vengono determinate definendo il campo spec.type del servizio.
2. Spiegazione dettagliata
1. ClusterIP
Definizione: tipo predefinito, è possibile accedere al servizio solo all'interno del cluster.
Funzione: esposizione dei servizi tramite l'indirizzo IP interno del cluster.
Esempio:

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

2.NodePort
Definizione: aprire una porta alta (solitamente 30000-32767) su ciascun nodo per consentire al traffico esterno di accedere al servizio.
Funzione: accedi al servizio tramite l'indirizzo IP e la nodePort di qualsiasi nodo.
Esempio:

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

3. Bilanciatore di carico

Definizione: il bilanciatore del carico fornito dalla piattaforma cloud assegna al servizio un indirizzo IP esterno.
Funzione: accedi al servizio tramite questo indirizzo IP, adatto a situazioni in cui è richiesto il bilanciamento del carico del traffico esterno.
Esempio:

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

4. Nome esterno

Definizione: mappare un servizio su un nome di dominio esterno (come un servizio di database).
Funzione: accedi al servizio tramite il nome di dominio esterno specificato, anziché tramite l'IP interno del cluster o l'IP del nodo.
Esempio:

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

2. Riepilogo
ClusterIP: il tipo di servizio predefinito, accessibile solo all'interno del cluster.
NodePort: aprire una porta su ciascun nodo per consentire al traffico esterno di accedere ai servizi.
LoadBalancer: il bilanciatore del carico fornito dalla piattaforma cloud assegna un indirizzo IP esterno, adatto per situazioni in cui è richiesto il bilanciamento del carico.
ExternalName: associa il servizio a un nome di dominio esterno, adatto a scenari che richiedono l'accesso a servizi esterni.