Zustandslose Arbeitslasten erstellen

In diesem Dokument wird beschrieben, wie Sie zustandslose Arbeitslasten in einem GDC-Kubernetes-Cluster (Google Distributed Cloud) mit Air Gap 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. Dieses Dokument soll Ihnen den Einstieg erleichtern, damit Sie die Verfügbarkeit Ihrer Anwendung effizient optimieren und anpassen können.

Dieses Dokument richtet sich an Entwickler in der Gruppe der Anwendungsoperatoren, die für die Erstellung von Anwendungsarbeitslasten für ihre Organisation verantwortlich sind. Weitere Informationen finden Sie unter Dokumentation zu Zielgruppen für GDC mit Air Gap.

Hinweis

Zum Ausführen der Aufgaben in diesem Dokument müssen Sie die erforderlichen Berechtigungen anfordern.

IAM-Rollen anfordern

Sie benötigen bestimmte Rollen, um die Berechtigungen zu erhalten, die zum Erstellen zustandsloser Arbeitslasten erforderlich sind. Die erforderlichen Rollen hängen davon ab, ob Sie in einem organisationsbezogenen freigegebenen Cluster oder in einem projektbezogenen Standardcluster arbeiten. Weitere Informationen finden Sie unter Kubernetes-Clusterkonfigurationen.

Freigegebene Clusterrollen

Wenn Sie zustandslose Arbeitslasten in einem freigegebenen Cluster erstellen, löschen, bearbeiten oder ansehen möchten, bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle Namespace Admin (namespace-admin) zuzuweisen. Diese Rolle ist an Ihren Projekt-Namespace gebunden.

Standard-Clusterrollen

Bitten Sie den IAM-Administrator Ihres Projekts, Ihnen die Rolle Cluster Developer (cluster-developer) zuzuweisen, um zustandslose Arbeitslasten in einem Standardcluster zu erstellen, zu löschen, zu bearbeiten oder anzusehen. Diese Rolle ist an Ihren Projekt-Namespace gebunden.

Umgebung vorbereiten

Wenn Sie Befehle für einen Kubernetes-Cluster über die API ausführen möchten, benötigen Sie die folgenden Ressourcen:

  • Suchen Sie den Namen des Kubernetes-Clusters oder fragen Sie ein Mitglied der Gruppe „Plattformadministrator“, wie der Clustername lautet.

  • Melden Sie sich an und generieren Sie die kubeconfig-Datei für den Kubernetes-Cluster.

  • Verwenden Sie den kubeconfig-Pfad des Kubernetes-Clusters, um KUBERNETES_CLUSTER_KUBECONFIG in dieser Anleitung zu ersetzen.

Deployment erstellen

Sie erstellen ein Deployment, indem Sie ein Deployment-Manifest schreiben und kubectl apply ausführen, um die Ressource zu erstellen. Bei dieser Methode werden auch Aktualisierungen von Live-Ressourcen beibehalten, ohne die Änderungen in die Manifestdateien zu übernehmen.

So erstellen Sie eine Deployment aus der zugehörigen Manifestdatei:

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

Ersetzen Sie Folgendes:

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

  • NAMESPACE: der Namespace, in dem die Containerarbeitslasten bereitgestellt werden sollen. Bei freigegebenen Clustern muss es sich um einen Projekt-Namespace handeln. Bei Standardclustern kann es sich um einen beliebigen Namespace handeln.

  • 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 über den 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

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

Nächste Schritte