Crea carichi di lavoro stateless

Questo documento spiega come creare e gestire workload stateless all'interno di un cluster Kubernetes Google Distributed Cloud (GDC) con air gap. 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 i 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 è rivolto agli sviluppatori del gruppo di operatori di applicazioni, responsabili della creazione dei workload delle applicazioni per la propria organizzazione. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC con air gap.

Prima di iniziare

Per completare le attività descritte in questo documento, devi richiedere le autorizzazioni necessarie.

Richiedi ruoli IAM

Devi disporre di ruoli specifici per ottenere le autorizzazioni necessarie per creare workload stateless. I ruoli necessari dipendono dal fatto che tu stia lavorando all'interno di un cluster condiviso con ambito a livello di organizzazione o di un cluster standard con ambito a livello di progetto. Per saperne di più, consulta Configurazioni dei cluster Kubernetes.

Ruoli cluster condivisi

Per creare, eliminare, modificare o visualizzare i workload stateless in un cluster condiviso, chiedi all'amministratore del progetto IAM di concederti il ruolo Namespace Admin (namespace-admin). Questo ruolo è associato allo spazio dei nomi del progetto.

Ruoli cluster standard

Per creare, eliminare, modificare o visualizzare i workload stateless in un cluster standard, chiedi all'amministratore del progetto IAM di concederti il ruolo Sviluppatore cluster (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_KUBECONFIG in queste istruzioni.

Crea un deployment

Puoi creare un deployment scrivendo un manifest Deployment ed eseguendo kubectl apply per creare la risorsa. Questo metodo conserva anche gli aggiornamenti apportati alle risorse attive 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 su cui stai distribuendo i carichi di lavoro dei container.

  • NAMESPACE: lo spazio dei nomi in cui eseguire il deployment dei workload del 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 container.

  • CONTAINER_IMAGE: il nome dell'immagine container. Devi includere il percorso del container registry e la versione dell'immagine, ad esempio REGISTRY_PATH/hello-app:1.0. Per saperne di più sull'impostazione del percorso del container registry, consulta la panoramica di Managed Harbor Service.

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 workload GPU nei tuoi container, consulta Gestisci i workload dei container GPU per ulteriori informazioni.

Passaggi successivi