Aktivieren Sie die Skaffold-Dateisynchronisierung und das warme Aktualisieren

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Um die Effizienz Ihres lokalen Entwicklungsworkflows zu verbessern und zu vermeiden, dass Pods neu erstellt, neu bereitgestellt und neu gestartet werden müssen, unterstützt Skaffold das Kopieren geänderter Dateien in einen bereitgestellten Container. Wenn Sie also Änderungen an statischen Dateien und Quellcodedateien vornehmen, werden diese innerhalb weniger Sekunden wirksam. Dies führt zu einer beschleunigten Feedbackschleife.

Bei statischen Dateien (z. B. HTML- und CSS-Dateien) wird dieses Kopierverhalten als Dateisynchronisierung bezeichnet.

Bei Quellcodedateien wird dieses Verhalten als Hot Reload bezeichnet und funktioniert mit den folgenden Dateitypen:

  • Go: *.go
  • Java: *.java, *.kt, *.scala, *.groovy, *.clj
  • NodeJS: *.js, *.mjs, *.coffee, *.litcoffee, *.json

Wenn der Hot Reload konfiguriert ist, erkennt Skaffold Änderungen an unterstützten Dateien und synchronisiert diese Änderungen mit dem ausgeführten Container in Ihrem Cluster. Dadurch wird eine umständliche Image-Neuerstellung und ein Neustart des Pods umgangen. Änderungen an anderen Dateitypen lösen jedoch eine Image-Neuerstellung aus.

Die automatische Dateisynchronisierung und Hot Reload sind standardmäßig aktiviert, wenn Sie mit Buildpacks als Ihrem bevorzugten Builder arbeiten. Für andere Builder wie Docker können Sie einen sync-Abschnitt in Ihrem skaffold.yaml für das Artefakt angeben, das Sie anpassen möchten.

Folgende Synchronisierungseinstellungen können festgelegt werden (in der Reihenfolge ihrer Präferenz):

  • auto (nur für Jib- und Buildpacks-Artefakte)
  • infer
  • manual

Wenn Sie eine manual-Synchronisierung angeben, um alle /static-html-HTML-Dateien mit dem Ordner static in Ihrem Container zu synchronisieren, würde skaffold.yaml Ihren Bereich sync enthalten:

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/node-example
      context: node
      sync:
        manual:
          - src: 'static-html/*.html'
            dest: static

Ausführliche Informationen zur Dateisynchronisierung und zum Festlegen von Synchronisierungsregeln finden Sie im Skaffold-Leitfaden zur Dateisynchronisierung.