Container konfigurieren

Hier erfahren Sie, wie Sie den Containerport und den Befehl des Einstiegspunkts und die Argumente konfigurieren.

Wenn Knative Serving einen Container startet, werden der Standardeinstiegspunktbefehl und die Standardbefehlsargumente des Images ausgeführt. Wenn Sie den Standardeinstiegspunkt und die Befehlsargumente des Images überschreiben möchten, können Sie die Felder command und args in der Containerkonfiguration verwenden. Das Feld command gibt den tatsächlichen Befehl an, der vom Container ausgeführt wird. Das Feld args gibt die Argumente an, die an diesen Befehl übergeben werden.

Containerport konfigurieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Der Container sollte den von der Umgebungsvariable PORT definierten Port beobachten und nicht einen bestimmten hartcodierten Port. Wenn dies jedoch nicht möglich ist, können Sie konfigurieren, über welchen Port Anfragen an den Container gesendet werden:

Console

  1. Rufen Sie in der Google Cloud Console Knative Serving auf:

    Zu Knative Serving

  2. Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Klicken Sie unter Erweiterte Einstellungen auf Container.

  4. Geben Sie den Port an, an den Anfragen gesendet werden sollen, sofern Sie nicht den Standardwert 8080 verwenden möchten. Dadurch wird auch die Umgebungsvariable PORT festgelegt.

  5. Klicken Sie auf Weiter, um mit dem nächsten Abschnitt fortzufahren.

  6. Wählen Sie im Abschnitt Konfigurieren, wie dieser Dienst ausgelöst wird die Verbindung aus, die Sie zum Auslösen des Dienstes verwenden möchten.

  7. Klicken Sie auf Erstellen, um das Image in Knative Serving bereitzustellen. Warten Sie, bis die Bereitstellung abgeschlossen ist.

Befehlszeile

  • Aktualisieren Sie für vorhandene Dienste eine Porteinstellung, indem Sie den Befehl gcloud run services update mit den folgenden Parametern ausführen:

    gcloud run services update SERVICE --port PORT

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • PORT durch den Port, an den Anfragen gesendet werden. Der Standardport ist 8080.
  • Legen Sie für neue Dienste den Port fest, indem Sie den Befehl gcloud run deploy mit dem Parameter --port ausführen:

    gcloud run deploy SERVICE --image=IMAGE_URL --port PORT

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.
    • PORT durch den Port, an den Sie Anfragen senden möchten. Der Standardport ist 8080.

YAML

Sie können die Konfiguration eines vorhandenen Dienstes in eine YAML-Datei herunterladen – mit dem gcloud run services describe-Befehl mithilfe des Flags --format=export. Sie können diese YAML-Datei dann ändern und diese Änderungen mit dem Befehl gcloud run services replace bereitstellen. Sie müssen sicherstellen, dass Sie nur die angegebenen Attribute ändern.

  1. Laden Sie die Konfiguration des Dienstes in eine Datei mit dem Namen service.yaml im lokalen Arbeitsbereich herunter:

    gcloud run services describe SERVICE --format export > service.yaml

    Ersetzen Sie SERVICE durch den Namen Ihres Knative-Serving-Dienstes.

  2. Aktualisieren Sie in Ihrer lokalen Datei das Attribut containerPort::

    apiVersion: serving.knative.dev/v1
    kind: Service
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
            ports:
            - containerPort: PORT
    

    Ersetzen

    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.
    • PORT durch den Port, an den Sie Anfragen senden möchten.
  3. Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:

    gcloud run services replace service.yaml

Befehl und Argumente des Containereinstiegspunkts konfigurieren

Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.

Wenn Knative Serving einen Container startet, werden der Standardeinstiegspunktbefehl des Images ausgeführt. Wenn Sie den vorhandenen Einstiegspunktbefehl und die Argumente angeben möchten, die im Container-Image definiert sind, können Sie die Einstellungen command und args in der Konfiguration des Knative Serving-Containers konfigurieren.

Sie können Einstiegspunkte, Argumente oder beides konfigurieren. Der in Knative Serving angegebene Befehl überschreibt jeden Befehl des Einstiegspunkts, der im Container-Image definiert ist. Wenn Sie nur Argumente angeben, werden diese Argumente an den im Container-Image definierten Einstiegspunktbefehl übergeben und ausgeführt.

In Knative Serving können Sie Einstiegspunktbefehle und -argumente mit der Google Cloud Console, dem Google Cloud CLI oder einer YAML-Datei konfigurieren, wenn Sie einen neuen Dienst bereitstellen, einen vorhandenen Dienst aktualisieren oder eine Überarbeitung bereitstellen:

Console

  1. Rufen Sie in der Google Cloud Console Knative Serving auf:

    Zu Knative Serving

  2. Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.

  3. Klicken Sie unter Erweiterte Einstellungen auf Container.

  4. Geben Sie den Einstiegspunktbefehl und die Argumente an, die der Container beim Start ausführen soll.

  5. Klicken Sie auf Weiter, um mit dem nächsten Abschnitt fortzufahren.

  6. Wählen Sie im Abschnitt Konfigurieren, wie dieser Dienst ausgelöst wird die Verbindung aus, die Sie zum Auslösen des Dienstes verwenden möchten.

  7. Klicken Sie auf Erstellen, um das Image in Knative Serving bereitzustellen. Warten Sie, bis die Bereitstellung abgeschlossen ist.

Befehlszeile

Optionen für Befehlsparameter

  • Um ein Argument anzugeben, das ein Komma (,) enthält, müssen Sie ARG jeweils durch ein anderes Trennzeichen maskieren. Wenn Sie beispielsweise @ verwenden:
    --args "^@^arg,with,commas@anotherarg@ARG3..."
  • Wenn Sie mehrere Gruppen von Schlüssel/Wert-Paaren angeben möchten, können Sie mehrere Parameter angeben, um die Lesbarkeit zu verbessern. Beispiel:
    [...]
    --args "ARG1" \
    --args "ARG2" \
    --args "ARG3"
  • Wenn Sie in Ihren Argumenten Gleichheitszeichen (=) verwenden möchten, müssen Sie jedes Argument im folgenden Format angeben:
    gcloud run services ...  \
      --args "--repo-allowlist=github.com/example/example_demo" \
      --args "--gh-webhook-secret=XX"

  • Aktualisieren Sie für vorhandene Dienste den Einstiegspunktbefehl, indem Sie den Befehl gcloud run services update mit den folgenden Parametern ausführen:

    gcloud run services update SERVICE --command COMMAND --args ARG1,ARG2,ARG-N

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • Optional: COMMAND durch den Befehl, den der Container beim Start ausführen soll.
    • Optional: ARG1 durch eines oder mehrere Argumente für den Befehl, der beim Start ausgeführt wird. Verwenden Sie eine durch Kommas getrennte Liste für mehrere Argumente. Argumente formatieren
  • Legen Sie für neue Dienste den Einstiegspunktbefehl fest, indem Sie den Befehl gcloud run deploy mit dem Parameter --command ausführen:

    gcloud run deploy SERVICE --image=IMAGE_URL --command COMMAND --args ARG1,ARG2,ARG-N

    Ersetzen Sie:

    • SERVICE durch den Namen des Dienstes.
    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.
    • Optional: COMMAND durch den Befehl, den der Container beim Start ausführen soll.
    • Optional: ARG1 durch eines oder mehrere Argumente für den Befehl, der beim Start ausgeführt wird. Verwenden Sie eine durch Kommas getrennte Liste für mehrere Argumente. Argumente formatieren

YAML

Sie können die Konfiguration eines vorhandenen Dienstes in eine YAML-Datei herunterladen – mit dem gcloud run services describe-Befehl mithilfe des Flags --format=export. Sie können diese YAML-Datei dann ändern und diese Änderungen mit dem Befehl gcloud run services replace bereitstellen. Sie müssen sicherstellen, dass Sie nur die angegebenen Attribute ändern.

  1. Laden Sie die Konfiguration des Dienstes in eine Datei mit dem Namen service.yaml im lokalen Arbeitsbereich herunter:

    gcloud run services describe SERVICE --format export > service.yaml

    Ersetzen Sie SERVICE durch den Namen Ihres Knative-Serving-Dienstes.

  2. Aktualisieren Sie in Ihrer lokalen Datei die Attribute command und args:

    apiVersion: serving.knative.dev/v1
    kind: Service
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
            command:
            - COMMAND
            args:
            - "ARG1"
            - "ARG-N"
    

    Ersetzen Sie:

    • IMAGE_URL durch einen Verweis auf das Container-Image, z. B. gcr.io/cloudrun/hello.
    • Optional: COMMAND durch den Befehl, den der Container beim Start ausführen soll.
    • Optional: ARG1 durch eines oder mehrere Argumente für den Befehl, der beim Start ausgeführt wird. Verwenden Sie eine durch Kommas getrennte Liste für mehrere Argumente.
  3. Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:

    gcloud run services replace service.yaml