Panoramica di Service Directory per GKE

Service Directory per Google Kubernetes Engine (GKE) fornisce una singola visualizzazione di tutti i servizi in tutti i tuoi deployment GKE e non solo. Puoi aggiungere vari tipi di servizi GKE, annotarli e poi visualizzarli in Service Directory.

Service Directory per GKE offre le seguenti funzionalità:

  • Consente di scoprire i servizi tramite gRPC e HTTP e di risolverli tramite DNS utilizzando le zone DNS di Service Directory. L'integrazione di Service Directory e Cloud DNS ti consente di configurare una zona DNS di Service Directory.
  • Service Directory registra i servizi al di fuori di GKE, consentendo ai servizi GKE e non GKE di scoprirsi facilmente a vicenda.
  • Service Directory applica i controlli delle autorizzazioni IAM e dei Controlli di servizio VPC per garantire la corretta sicurezza e privacy dei dati dei clienti.
  • Puoi configurare Service Directory per GKE con cluster GKE Autopilot o cluster GKE Standard. Per informazioni sulle due modalità, vedi Scegliere una modalità operativa GKE.

Per scoprire come configurare Service Directory per registrare automaticamente i tuoi servizi GKE con Service Directory, consulta Configurazione di Service Directory per GKE.

Mappatura dei servizi

Quando registri un servizio con Service Directory, viene creato un servizio nel progetto Google Cloud fleet utilizzando il nome dello spazio dei nomi Kubernetes e la regione del cluster GKE. La tabella seguente descrive come vengono mappate le proprietà del servizio GKE alle proprietà del servizio creato in Service Directory per tutti i tipi di servizio GKE.

Proprietà di primo livello

Proprietà Service Directory Proprietà GKE
Progetto Progetto del parco risorse
Regione Regione del cluster
Spazio dei nomi Spazio dei nomi Kubernetes

LoadBalancer tipo di servizio

Il seguente esempio mostra come un servizio GKE LoadBalancer viene mappato a Service Directory. Il servizio Service Directory esiste in uno spazio dei nomi con lo stesso nome dello spazio dei nomi Kubernetes nel progetto fleet e nella regione del cluster GKE.

Proprietà Service Directory Proprietà GKE
Nome servizio Nome servizio
Nome endpoint Generato automaticamente dal controller Service Directory
Indirizzo IP endpoint Ingress LoadBalancer
Porta endpoint Porta di servizio LoadBalancer
Rete di endpoint Rete VPC del cluster

Di seguito è riportato un esempio di servizio LoadBalancer GKE:

apiVersion: v1
kind: Service
metadata:
  name: hello-app
  annotations:
    cloud.google.com/load-balancer-type: "Internal"
  labels:
    app: hello-app
    sd-import: "true"
spec:
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
  selector:
    app: hello-app
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 10.140.0.5

Di seguito è riportato un esempio di servizio Service Directory:

service:
  endpoints:
  - address: 10.140.0.5
    metadata:
       cloud.google.com/load-balancer-type: "Internal"
    name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-12345
    port: 80
    network: projects/my-project/locations/global/networks/default
  name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app

NodePort tipo di servizio

L'esempio seguente mostra come un servizio NodePort GKE viene mappato a Service Directory. Il servizio Service Directory esiste in uno spazio dei nomi con lo stesso nome dello spazio dei nomi Kubernetes nel progetto dell'hub e nella regione del cluster GKE.

Proprietà Service Directory Proprietà GKE
Nome servizio Nome servizio
Nome endpoint Generato automaticamente dal controller Service Directory
Indirizzo IP endpoint Indirizzo IP interno del nodo per ogni nodo che esegue un pod per il servizio
Porta endpoint Porta nodo statico
Rete di endpoint Rete VPC del cluster

Di seguito è riportato un esempio di servizio NodePort GKE:

apiVersion: v1
kind: Service
metadata:
  name: hello-app
  annotations:
    key1: "value1"
spec:
  ports:
  - nodePort: 30007
    port: 80
    targetPort: 8080
    protocol: TCP
  selector:
    app: hello-app
  type: NodePort
  

Di seguito è riportato un esempio di nodi GKE:

apiVersion: v1
items:
- apiVersion: v1
  kind: Node
  metadata:
    name: gke-hello-cluster-default-pool-a40cbab6-d2rr
  status:
    addresses:
    - address: 10.142.0.27
      type: InternalIP
    - address: 34.73.248.170
- apiVersion: v1
  kind: Node
  metadata:
    name: gke-hello-cluster-default-pool-a40cbab6-kb38
  status:
    addresses:
    - address: 10.142.0.29
      type: InternalIP
    - address: 35.196.219.215
      type: ExternalIP
- apiVersion: v1
  kind: Node
  metadata:
    name: gke-hello-cluster-default-pool-a40cbab6-x34q
  status:
    addresses:
    - address: 10.142.0.28
      type: InternalIP
    - address: 34.75.202.26
      type: ExternalIP
    

Di seguito è riportato un esempio di servizio Service Directory:

service:
  endpoints:
  - address: 10.142.0.27
    metadata:
      key1: value1
    name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-12345
    port: 30007
    network: projects/my-project/locations/global/networks/default
  - address: 10.142.0.28
    metadata:
      key1: value1
    name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-23456
    port: 30007
    network: projects/my-project/locations/global/networks/default
  - address: 10.142.0.29
    metadata:
      key1: value1
    name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-34567
    port: 30007
    network: projects/my-project/locations/global/networks/default
  name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app
  

Servizio ClusterIP

Il seguente esempio mostra come un servizio GKE ClusterIP viene mappato a Service Directory. Il servizio Service Directory esiste in uno spazio dei nomi con lo stesso nome dello spazio dei nomi Kubernetes nel progetto fleet e nella regione del cluster GKE.

Proprietà Service Directory Proprietà GKE
Nome servizio Nome servizio
Nome endpoint Generato automaticamente dal controller Service Directory
Indirizzo IP endpoint ClusterIP
Porta endpoint Porta di servizio
Rete di endpoint Rete VPC del cluster

Di seguito è riportato un esempio di servizio ClusterIP GKE:

apiVersion: v1
kind: Service
metadata:
  name: hello-app
  annotations:
    key1: "value1"
  labels:
    app: hello-app
    sd-import: "true"
spec:
  clusterIP: 10.15.254.17
  ports:
  - port: 80
    targetPort: 8080
    protocol: TCP
  selector:
    app: hello-app
  type: ClusterIP
  

Di seguito è riportato un esempio di servizio Service Directory:

service:
  endpoints:
  - address: 10.15.254.17
    metadata:
      key1: value1
    name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-12345
    port: 80
    network: projects/my-project/locations/global/networks/default
  name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app
  

Passaggi successivi