Crea carichi di lavoro stateless

Questo documento spiega come creare e gestire carichi di lavoro stateless all'interno di un cluster Kubernetes air-gapped di 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 l'archiviazione permanente in un cluster Kubernetes per archiviare dati o lo stato dell'applicazione. Questo documento ti aiuta a iniziare in modo da poter ottimizzare e regolare in modo efficiente la disponibilità della tua applicazione.

Questo documento è destinato agli sviluppatori del gruppo di operatori di applicazioni, responsabili della creazione dei carichi di lavoro delle applicazioni per la propria organizzazione. Per ulteriori informazioni, consulta Segmenti di pubblico per la documentazione air-gapped di GDC.

Prima di iniziare

Per completare le attività descritte in questo documento, devi disporre delle seguenti risorse e dei seguenti ruoli:

  • Per eseguire comandi su un cluster Kubernetes, 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 se non ne hai uno.

    • Utilizza il percorso kubeconfig del cluster Kubernetes per sostituire KUBERNETES_CLUSTER_KUBECONFIG in queste istruzioni.

  • Per ottenere le autorizzazioni necessarie per creare carichi di lavoro stateless in un cluster condiviso, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Namespace Admin (namespace-admin) nello spazio dei nomi del progetto.

  • Per ottenere le autorizzazioni necessarie per creare carichi di lavoro stateless in un cluster standard, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo Cluster Developer (cluster-developer) in un cluster standard.

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 workload 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'oggetto Deployment.

  • APP_NAME: il nome dell'applicazione da eseguire all'interno del deployment.

  • NUMBER_OF_REPLICAS: il numero di oggetti Pod 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 esempio REGISTRY_PATH/hello-app:1.0. Per saperne di più 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

Se esegui il deployment di carichi di lavoro GPU nei container, consulta Gestire i carichi di lavoro dei container GPU per saperne di più.