Questa pagina spiega come creare e gestire carichi di lavoro stateless all'interno di un cluster Kubernetes appliance air-gapped Google Distributed Cloud (GDC). I workload stateless ti consentono di scalare il deployment dell'applicazione in base alle esigenze del workload, il tutto senza dover gestire lo spazio di archiviazione permanente in un cluster Kubernetes per archiviare dati o lo stato dell'applicazione. Questa pagina ti aiuta a iniziare a ottimizzare e regolare in modo efficiente la disponibilità della tua applicazione.
Questa pagina è rivolta agli sviluppatori all'interno del gruppo di operatori di applicazioni, che sono responsabili della creazione dei carichi di lavoro delle applicazioni per la loro organizzazione.
Prima di iniziare
Per eseguire comandi sul cluster Kubernetes bare metal preconfigurato, assicurati di disporre delle seguenti risorse:
Individua il nome del cluster Kubernetes o chiedi all'amministratore della piattaforma qual è il nome del cluster.
Accedi e genera il file kubeconfig per il cluster Kubernetes se non ne hai uno.
Utilizza il percorso kubeconfig del cluster Kubernetes per sostituire
CLUSTER_KUBECONFIG
in queste istruzioni.
Per ottenere le autorizzazioni necessarie per creare carichi di lavoro stateless, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Namespace Admin (namespace-admin
) nello spazio dei nomi del progetto.
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 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
resources:
requests:
nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1
limits:
nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1
EOF
Sostituisci quanto segue:
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 del progetto in cui eseguire il deployment dei workload dei container.DEPLOYMENT_NAME
: il nome dell'oggettoDeployment
.APP_NAME
: il nome dell'applicazione da eseguire all'interno del deployment.NUMBER_OF_REPLICAS
: il numero di oggettiPod
replicati gestiti dal deployment.CONTAINER_NAME
: il nome del contenitore.CONTAINER_IMAGE
: il nome dell'immagine container. Devi includere il percorso del registro dei container e la versione dell'immagine, ad esempioREGISTRY_PATH/hello-app:1.0
. Per ulteriori informazioni sull'impostazione del percorso del registro dei 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
resources:
requests:
nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1
limits:
nvidia.com/gpu-pod-NVIDIA_A100_80GB_PCIE: 1
Se esegui il deployment di carichi di lavoro GPU nei container, consulta Gestire i carichi di lavoro dei container GPU per ulteriori informazioni.