Utilizza Knative serving per gestire automaticamente l'infrastruttura necessaria per ospitare software su Google Kubernetes Engine (GKE). Per gestire le applicazioni, Knative serving utilizza una struttura organizzativa chiamata modello di risorse. Questo modello di risorse è composto da tre parti principali: servizi, revisioni e istanze container.
Il seguente diagramma illustra questi componenti e le relative interazioni: un Google Cloud progetto contiene due servizi Knative serving, Service A e Service B, ognuno con diverse revisioni. Il servizio A sta elaborando le richieste con più istanze container in esecuzione, mentre il servizio B è inattivo.
Servizi Knative serving
Il servizio è la risorsa principale di Knative serving. Ogni servizio si trova nello spazio dei nomi di un cluster GKE specifico.
Un dato Google Cloud progetto 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 concorrenza.
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 in seguito imposti una variabile di ambiente, viene creata una terza revisione. Ogni modifica di configurazione successiva crea una nuova revisione.
Le richieste vengono instradate automaticamente il prima possibile all'ultima revisione del servizio integro. Se necessario, puoi suddividere il traffico tra revisioni diverse.
Istanze container di Knative serving
Ogni revisione che riceve richieste viene scalata automaticamente in base 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.