Questo documento spiega come creare e gestire i carichi di lavoro stateless all'interno di un cluster Kubernetes air-gapped di Google Distributed Cloud (GDC). I carichi di lavoro stateless ti consentono di scalare il deployment dell'applicazione in base alle esigenze del carico di lavoro, il tutto senza dover gestire l'archiviazione permanente in un cluster Kubernetes per archiviare i dati o lo stato dell'applicazione. Questo documento ti aiuta a iniziare a ottimizzare e regolare in modo efficiente la disponibilità della tua applicazione.
Questo documento è rivolto agli sviluppatori del gruppo di operatori di applicazioni, responsabili della creazione di carichi di lavoro delle applicazioni per la propria organizzazione. Per saperne di più, consulta la sezione Pubblico della documentazione GDC con air gap.
Prima di iniziare
Per completare le attività descritte in questo documento, devi richiedere le autorizzazioni necessarie.
Richiedi i ruoli IAM
Devi disporre di ruoli specifici per ottenere le autorizzazioni necessarie per creare carichi di lavoro stateless. I ruoli richiesti dipendono dal fatto che tu stia lavorando all'interno di un cluster condiviso con ambito organizzazione o di un cluster standard con ambito progetto. Per saperne di più, consulta la sezione Configurazione dei cluster Kubernetes.
Ruoli del cluster condiviso
Per creare, eliminare, modificare o visualizzare i carichi di lavoro stateless in un cluster condiviso, chiedi all'amministratore IAM del progetto di concederti il ruolo Namespace Admin (namespace-admin). Questo ruolo è associato allo spazio dei nomi del progetto.
Ruoli del cluster standard
Per creare, eliminare, modificare o visualizzare i carichi di lavoro stateless in un cluster standard, chiedi all'amministratore IAM del progetto di concederti il ruolo Cluster Developer (cluster-developer). Questo ruolo è associato allo spazio dei nomi del progetto.
Prepara l'ambiente
Per eseguire comandi su un cluster Kubernetes utilizzando l'API, assicurati di disporre delle seguenti risorse:
Individua il nome del cluster Kubernetes o chiedi a un membro del gruppo di amministratori della piattaforma qual è il nome del cluster.
Accedi e genera il file kubeconfig per il cluster Kubernetes.
Utilizza il percorso kubeconfig del cluster Kubernetes per sostituire
KUBERNETES_CLUSTER_KUBECONFIGin queste istruzioni.
Crea un deployment
Per creare un deployment, scrivi un manifest Deployment ed esegui kubectl apply per creare la risorsa. Questo metodo conserva anche gli aggiornamenti apportati alle risorse live senza unire le modifiche ai file manifest.
Per creare un Deployment dal relativo file manifest, esegui:
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: DEPLOYMENT_NAME
spec:
replicas: NUMBER_OF_REPLICAS
selector:
matchLabels:
run: APP_NAME
template:
metadata:
labels: # The labels given to each pod in the deployment, which are used
# to manage all pods in the deployment.
run: APP_NAME
spec: # The pod specification, which defines how each pod runs in the deployment.
containers:
- name: CONTAINER_NAME
image: CONTAINER_IMAGE
EOF
Sostituisci quanto segue:
KUBERNETES_CLUSTER_KUBECONFIG: il file kubeconfig per il cluster Kubernetes in cui stai eseguendo il deployment dei carichi di lavoro dei container.NAMESPACE: lo spazio dei nomi in cui eseguire il deployment dei carichi di lavoro dei container. Per i cluster condivisi, deve essere uno spazio dei nomi del progetto. Per i cluster standard, può essere qualsiasi spazio dei nomi.DEPLOYMENT_NAME: il nome dell'oggettoDeployment.APP_NAME: il nome dell'applicazione da eseguire all'interno del deployment.NUMBER_OF_REPLICAS: il numero di oggettiPodreplicati gestiti dal deployment.CONTAINER_NAME: il nome del container.CONTAINER_IMAGE: il nome dell'immagine container. Devi includere il percorso del registro container e la versione dell'immagine, ad esempioREGISTRY_PATH/hello-app:1.0. Per saperne di più sull'impostazione del percorso del registro container, consulta la panoramica del servizio Managed Harbor.
Ad esempio:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
run: my-app
template:
metadata:
labels:
run: my-app
spec:
containers:
- name: hello-app
image: REGISTRY_PATH/hello-app:1.0
Se stai eseguendo il deployment di carichi di lavoro GPU nei container, consulta la sezione Gestire i carichi di lavoro dei container GPU per saperne di più.
Passaggi successivi
- Esamina i carichi di lavoro stateless
- Aggiorna i carichi di lavoro stateless
- Gestisci i pool di nodi