Il seguente diagramma mostra il modello di risorsa di Knative serving:
Il diagramma mostra un progetto Google Cloud contenente due servizi Knative Serving, Service A
e Service B
, ciascuno dei quali ha diverse revisioni.
Nel diagramma, Service A
riceve molte richieste, il che comporta l'avvio e l'esecuzione di diverse istanze container. Tieni presente che Service B
non riceve richieste al momento, quindi non è ancora stata avviata alcuna istanza di container.
Servizi Knative serving
Il servizio è la risorsa principale di Knative serving. Ogni servizio si trova in uno spazio dei nomi del cluster GKE specifico.
Un determinato progetto Google Cloud può eseguire molti servizi in diverse regioni o cluster GKE.
Ogni servizio espone un endpoint univoco e scala automaticamente l'infrastruttura sottostante per gestire le richieste in entrata.
Revisioni di Knative serving
Ogni deployment in un servizio crea una revisione. Una revisione è composta da una specifica immagine container e da impostazioni di ambiente come variabili di ambiente, limiti di memoria o valore di contemporaneità.
Le revisioni sono immutabili: una volta creata una revisione, non può essere modificata. Ad esempio, quando esegui il deployment di un'immagine container in un nuovo servizio Knative Serving, viene creata la prima revisione. Se poi esegui il deployment di un'immagine container diversa nello stesso servizio, viene creata una seconda revisione. Se successivamente imposti una variabile di ambiente, viene creata una terza revisione e così via.
Le richieste vengono instradate automaticamente il prima possibile all'ultima revisione del servizio in stato integro. Puoi dividere il traffico tra le diverse revisioni come preferisci.
Istanze di container Knative serving
Ogni revisione che riceve richieste viene scalata automaticamente al numero di istanze container necessarie per gestire tutte queste richieste. Tieni presente che un'istanza container può ricevere molte richieste contemporaneamente. Con l'impostazione di concorrenza, puoi impostare il numero massimo di richieste che possono essere inviate in parallelo a una determinata istanza container.