Zustandslose Arbeitslasten erstellen

Auf dieser Seite wird beschrieben, wie Sie zustandslose Arbeitslasten in einem Kubernetes-Cluster mit Air Gap einer Google Distributed Cloud-Appliance (GDC) erstellen und verwalten. Mit zustandslosen Arbeitslasten können Sie das Deployment Ihrer Anwendung basierend auf den Anforderungen der Arbeitslast skalieren, ohne dass Sie nichtflüchtigen Speicher in einem Kubernetes-Cluster verwalten müssen, um Daten oder den Anwendungsstatus zu speichern. Auf dieser Seite finden Sie die ersten Schritte, damit Sie die Verfügbarkeit Ihrer Anwendung effizient optimieren und anpassen können.

Diese Seite richtet sich an Entwickler in der Gruppe der Anwendungsoperatoren, die für die Erstellung von Anwendungsarbeitslasten für ihre Organisation verantwortlich sind.

Hinweis

Um die Aufgaben in diesem Dokument auszuführen, müssen Sie die erforderlichen Berechtigungen anfordern und Ihre Umgebung vorbereiten.

IAM-Rollen anfordern

Wenn Sie zustandslose Arbeitslasten in einem Kubernetes-Cluster erstellen, löschen, bearbeiten oder ansehen möchten, bitten Sie Ihren IAM-Administrator der Organisation, Ihnen die Rolle Namespace-Administrator (namespace-admin) zu gewähren. Diese Rolle ist an Ihren Projekt-Namespace gebunden.

Umgebung vorbereiten

Wenn Sie Befehle für den vorkonfigurierten Bare-Metal-Kubernetes-Cluster ausführen möchten, benötigen Sie die folgenden Ressourcen:

  1. Suchen Sie den Namen des Kubernetes-Clusters oder fragen Sie Ihren Plattformadministrator nach dem Clusternamen.

  2. Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Kubernetes-Cluster, falls Sie noch keine haben.

  3. Ersetzen Sie in dieser Anleitung CLUSTER_KUBECONFIG durch den kubeconfig-Pfad des Kubernetes-Clusters.

Deployment erstellen

Sie erstellen ein Deployment, indem Sie ein Deployment-Manifest schreiben und kubectl apply ausführen, um die Ressource zu erstellen. Diese Methode behält auch Aktualisierungen bei, die an aktiven Ressourcen vorgenommen wurden, ohne die Änderungen in die Manifestdateien zu übernehmen.

So erstellen Sie ein Deployment aus der Manifestdatei:

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

Ersetzen Sie Folgendes:

  • CLUSTER_KUBECONFIG: Die kubeconfig-Datei für den Kubernetes-Cluster, in dem Sie Containerarbeitslasten bereitstellen.

  • NAMESPACE: Der Projekt-Namespace, in dem die Containerarbeitslasten bereitgestellt werden sollen.

  • DEPLOYMENT_NAME: Der Name des Deployment-Objekts.

  • APP_NAME: Der Name der Anwendung, die im Deployment ausgeführt werden soll.

  • NUMBER_OF_REPLICAS: Die Anzahl der replizierten Pod-Objekte, die vom Deployment verwaltet werden.

  • CONTAINER_NAME: Der Name des Containers.

  • CONTAINER_IMAGE: Der Name des Container-Images. Sie müssen den Container Registry-Pfad und die Version des Images angeben, z. B. REGISTRY_PATH/hello-app:1.0. Weitere Informationen zum Festlegen des Container Registry-Pfads finden Sie in der Übersicht zum Managed Harbor Service.

Beispiel:

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

Weitere Informationen zum Deployment von GPU-Arbeitslasten in Containern finden Sie unter GPU-Containerarbeitslasten verwalten.