Utiliser Skaffold avec Cloud Deploy

Cet article décrit Skaffold et explique comment et pourquoi. Cloud Deploy l'utilise, et ce que vous devez faire pour qu'il fonctionne vous.

Cloud Deploy utilise Skaffold pour les opérations de rendu et de déploiement. Vous pouvez également utilisez-le pour le développement local, la compilation, les tests et le déploiement avancé caractéristiques. Toutefois, Cloud Deploy ne nécessite qu'un déploiement Skaffold configuration qui identifie manifestes pour afficher et appliquer.

Qu'est-ce que Skaffold ?

Skaffold est un outil de ligne de commande qui permet le développement continu Applications Kubernetes natives Skaffold vous permet de configurer espace de travail de développement à utiliser avec la livraison continue Cloud Deploy les pipelines de ML.

Skaffold inclut les fonctionnalités suivantes:

  • Il vous offre un contrôle discret des activités du pipeline CI/CD (création, rendu, test de déploiement, etc.).

  • Il s'agit d'un outil de développement local.

  • Les profils Skaffold vous permettent de différencier les environnements différentes configurations de compilation, de test et de déploiement, toutes dans la même configuration .

Pourquoi Cloud Deploy utilise-t-il Skaffold ?

Google Cloud Deploy utilise Skaffold pour séparer les outils de rendu de la diffusion pipeline. Votre pipeline de livraison définit simplement la progression de la cible cible, tandis que votre configuration Skaffold définit les fichiers manifestes affichés et comment. Cela rend l'affichage du fichier manifeste flexible sans affecter la façon dont vous définissez votre pipeline de livraison.

Voici quelques-uns des avantages offerts par Skaffold lorsque vous l'utilisez avec Cloud Deploy:

  • Processus d'intégration facile

    Commencez par une boucle de développement local. Vous pouvez partager votre fichier skaffold.yaml avec votre équipe, ce qui peut permettre la cohérence et aider les nouveaux membres de l'équipe.

  • Contrôle cohérent du rendu pour diverses cibles de déploiement

    Vous pouvez utiliser des profils Skaffold, avec un rendu et un déploiement différents pour cibles différentes.

  • Choix d'outils de rendu sans compromettre le fonctionnement des pipelines de livraison défini

    L'utilisation de Skaffold permet à Cloud Deploy de séparer le pipeline de livraison à partir des détails du rendu. Cette séparation vous permet de tester avec vos fichiers manifestes sans perturber le pipeline de livraison.

  • Processus d'affichage cohérent

    La source du rendu et vos conteneurs permettent de générer le rendu des fichiers manifestes.

  • Vérifications de l'état du déploiement

    Skaffold les exécute, et Cloud Deploy les utilise.

Comment Cloud Deploy utilise-t-il Skaffold ?

  • La source du rendu et les références aux images de conteneur sont transmises à Cloud Deploy lorsque vous créez une version.

    Lors de la création d'une version, Cloud Deploy appelle Cloud Build, qui à son tour appelle skaffold diagnose et skaffold render pour afficher le ou les fichiers manifestes à l'aide de cette source de rendu images.

  • Vous pouvez utiliser des profils Skaffold. pour différencier les fichiers manifestes qui seront appliqués à différentes cibles.

  • Cloud Deploy est compatible avec les modules Skaffold statiques.

  • Lors du déploiement, Cloud Deploy appelle skaffold apply pour appliquer le ou les fichiers manifestes affichés au cluster cible.

  • Cloud Deploy n'est pas compatible avec le recours à d'autres déployeurs pour déployer votre application, sauf si vous utilisez des cibles personnalisées. Vous pouvez toutefois utiliser des outils tels que Helm ou Kustomize en tant que moteurs de rendu. Pour savoir comment Cloud Deploy se déploie sans utiliser de déployeurs spécifiques (comme Helm), consultez la page Architecture des services.

Tirez parti de Skaffold

  1. Configurez Skaffold en fonction des besoins de votre pipeline.

    1. Déterminer les besoins de votre pipeline de livraison

      Combien de cibles aurez-vous ? Le rendu et le déploiement sont-ils chaque élément. Si la configuration est la même pour chaque cible de votre progression, vous n'avez pas besoin d'utiliser des profils Skaffold. Vous n'avez besoin que d'un skaffold.yaml qui décrit les fichiers manifestes à afficher.

    2. Le cas échéant, créez un profil Skaffold pour chaque cible.

      Définissez cela dans le fichier skaffold.yaml et associez-le à votre pipeline de livraison de progression de définition.

      Consultez la documentation Skaffold. pour en savoir plus sur les profils Skaffold. De plus, le document Gérer les fichiers manifestes dans Cloud Deploy inclut des exemples de configuration de profil.

    3. Définir le niveau de verbosité de la journalisation Skaffold

      Par défaut, Niveau de journalisation Skaffold est défini sur warn. Vous pouvez remplacer cela par debug dans la configuration de une cible environnement d'exécution en définissant verbose: true.

  2. Connectez Cloud Deploy à votre système d'intégration continue.

    À la fin du processus d'intégration continue, transmettez la skaffold.yaml, la source du rendu et les images de conteneur à renseigner dans le fichier manifeste affiché.

  3. Facultatif: configurez votre boucle de développement local à l'aide de Skaffold.

    Utiliser Skaffold pour le développement est facultative dans Cloud Deploy. La seule chose qui est requise pour permettant le fonctionnement de Cloud Deploy est un fichier skaffold.yaml qui identifie les fichiers manifestes à afficher.

Étape suivante

  • Consultez le site de Skaffold pour en savoir plus sur son fonctionnement. et ce qu'il peut faire pour vous.

  • En savoir plus Cloud Deploy sélectionne la version de Skaffold à utiliser, les modifications qui lui sont apportées et la manière dont pour déterminer quelle version est en cours d'utilisation.

  • Découvrez comment utiliser Skaffold. avec des outils avancés de gestion des fichiers manifestes comme Helm, Kustomize et kpt.

  • Suivez le tutoriel sur les profils Skaffold.