Utiliser Google Cloud et Kubernetes YAML

Cloud Code est conçu pour faciliter la configuration de Kubernetes et de Cloud Build en lintant un schéma de structure et de valeurs valides, et en fournissant des erreurs descriptives. Cloud Code est fourni avec des solutions prêtes à l'emploi pour des schémas courants, des saisies intelligentes et de la documentation lorsque vous passez la souris.

.

Fichiers de configuration YAML compatibles

Cloud Code est également compatible avec les définitions de ressources personnalisées (CRD) personnalisées Kubernetes, telles que Kubeflow, prêtes à l'emploi.

Utiliser un schéma personnalisé

Avec Cloud Code, vous pouvez fournir votre propre schéma CRD avec le paramètre cloudcode.yaml.crdSchemaLocations dans votre fichier settings.json. Vous pouvez le faire pointer vers un fichier local ou une URL. Les URL pointant vers github.com sont automatiquement converties en raw.githubusercontent.com.

Extraire un schéma d'un cluster

Lorsque vous basculez vers un cluster exécutant Kubernetes 1.16 ou une version ultérieure dans l'explorateur Kubernetes, Cloud Code extrait automatiquement le schéma de toutes les CRD installées.

Configurer avec des extraits de code

Les extraits de code prêts à l'emploi pour le schéma YAML courant (utilisant Command/Ctrl+Space pour afficher les options) facilitent la création d'un fichier YAML ou l'ajout à un fichier existant sans erreur, tout en continuant pratiques. Cloud Code facilite l'utilisation des champs répétitifs. saisissez une instance et Cloud Code remplit les instances restantes.

Cloud Code propose les extraits de code suivants:

  • Anthos Config Management - Cluster
  • Anthos Config Management - Cluster Selector
  • Anthos Config Management - Config Management
  • Anthos Config Management - Namespace Selector
  • Cloud Build - Cloud Run deployment
  • Cloud Build - Docker container build
  • Cloud Build - GKE deployment
  • Cloud Build - GKE Skaffold deployment
  • Cloud Build - Go build
  • Cloud Build - Terraform plan + apply
  • Config Connector - BigQueryDataset
  • Config Connector - BigQueryTable
  • Config Connector - BigtableCluster
  • Config Connector - BigtableInstance
  • Config Connector - PubSubSubscription
  • Config Connector - PubSubTopic
  • Config Connector - RedisInstance
  • Config Connector - SpannerInstance
  • Kubernetes - ConfigMap
  • Kubernetes - Deployment
  • Kubernetes - Ingress
  • Kubernetes - Pod
  • Kubernetes - Secret
  • Kubernetes - Service
  • Migrate for Anthos - Export
  • Migrate for Anthos - PersistentVolumeClaim
  • Migrate for Anthos - StatefulSet
  • Skaffold - Bazel
  • Skaffold - Getting-started
  • Skaffold - Helm deployment
  • Skaffold - Kaniko

Activer la synchronisation des fichiers Skaffold et l'actualisation à chaud

Pour améliorer l'efficacité de votre workflow de développement local et éviter d'avoir à recompiler, redéployer et redémarrer vos pods, Skaffold prend en charge la copie des fichiers modifiés dans un conteneur déployé. Cela signifie que lorsque vous apportez des modifications aux fichiers statiques et au code source, elles sont appliquées en quelques secondes, ce qui accélère la boucle de rétroaction.

Pour les fichiers statiques (fichiers HTML et CSS, par exemple), ce comportement est appelé synchronisation de fichiers.

Pour les fichiers de code source, ce comportement est appelé actualisation à chaud et est compatible avec les types de fichiers suivants:

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

Lorsque l'actualisation à chaud est configurée, Skaffold détecte les modifications apportées aux fichiers compatibles et synchronise ces modifications avec le conteneur en cours d'exécution sur votre cluster. Les modifications apportées aux types de fichiers non compatibles avec l'actualisation à chaud déclenchent une recréation d'image et un redémarrage du pod.

La synchronisation automatique des fichiers et l'actualisation à chaud sont activées par défaut lorsque vous utilisez Buildpacks comme compilateur préféré. Pour les autres compilateurs tels que Docker, vous pouvez spécifier une section sync dans votre fichier skaffold.yaml pour l'artefact que vous personnalisez.

Vous pouvez choisir l'un des paramètres de synchronisation suivants (par ordre de préférence):

  • auto (uniquement pour les artefacts Jib et Buildpacks). Il s'agit de la valeur par défaut si elle n'est pas spécifiée pour Buildpacks.)
  • infer
  • manual

L'exemple de section sync suivant dans un fichier skaffold.yaml spécifie une synchronisation manual pour synchroniser tous les fichiers HTML /static-html avec le dossier static d'un conteneur:

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

Pour obtenir des instructions détaillées sur la synchronisation des fichiers et la spécification des règles de synchronisation, consultez le guide Skaffold sur la synchronisation des fichiers.

Saisie avec contexte

En fonction du schéma actuel, Cloud Code fournit des achèvements contextuels et des documents pertinents pour vous aider à choisir la bonne option.

Saisie avec contexte pour le schéma Kubernetes

Valider le schéma YAML

Cloud Code offre une assistance pour la validation du schéma en signalant les valeurs et les tags non valides dans vos fichiers YAML, et en suggérant des corrections lorsque cela est possible.

La valeur du champ "name" (nom) est soulignée en rouge pour signaler que la valeur "1234" est non valide. L'info-bulle précise : "Incorrect type. Expected string." (Type incorrect. Type attendu : chaîne.)

Faire apparaître la documentation par survol de la souris

Cloud Code fournit la documentation pertinente lorsque vous passez la souris sur une valeur du schéma.

Informations de documentation par survol de la souris dans le schéma

Accéder aux définitions de ressources

Pour afficher rapidement les définitions des ressources, effectuez un clic droit et sélectionnez Go to Definition (Définition) ou Peek Definition (Définition de Peek).

Informations de définition par clic droit dans le schéma

Appliquer un fichier YAML

Pour appliquer une modification de configuration à l'aide du fichier actuel, vous pouvez exécuter la commande Cloud Code: Appliquer le fichier JSON/YAML actuel avec la ressource déployée Kubernetes à partir de la palette de commandes (appuyez sur Cmd/Ctrl+Shift+P).

Cette commande permet d'afficher une vue diff pour vous permettre d'examiner les modifications. Cliquez sur Apply (Appliquer) lorsque vous êtes invité à appliquer cette modification. Cette opération exécute kubectl apply -f.

Afficher les différences entre les fichiers YAML

Pour afficher les différences entre un fichier YAML dans le système de gestion des versions et un fichier YAML déployé, vous pouvez utiliser la commande Cloud Code: Diff. le fichier JSON/YAML actuel avec la ressource déployée Kubernetes à partir de la commande Palette (appuyez sur Cmd/Ctrl+Shift+P).

Vue comparative d'un schéma Kubernetes

Effectuer une simulation d'un fichier YAML

Pour effectuer une simulation de votre configuration et vérifier sa validité, vous pouvez exécuter Cloud Code: Configuration en cours pour la validation côté serveur et Cloud Code: Simulation. - Exécutez la configuration actuelle pour la validation côté client à partir de la palette de commandes (appuyez sur Cmd/Ctrl+Shift+P).

Commandes de simulation répertoriées dans la palette de commandes et dans la configuration actuelle de simulation pour la validation côté serveur sélectionnée

Cela exécute kubectl apply -f dry-run=server (ou kubectl apply -f dry-run=client, pour l'option "Client") et affiche une validation réussie (ou un message d'erreur si votre fichier de configuration n'est pas valide) sous forme de toast. (Installation de Python groupée).

Dans l'exemple suivant, la validation de simulation côté serveur du fichier de configuration hello.deployment.yaml renvoie une erreur lors de la tentative de création d'un déploiement, car l'espace de noms spécifié, random-namespace, ne existent.

La validation à l'exécution du serveur échoue sur le fichier "hello.deployment.yaml". Un message d'erreur s'affiche sous forme de toast. Les détails de l'erreur se trouvent dans le canal de sortie. L'espace de noms "random-namespace" n'existe pas

Utiliser des secrets

L'utilisation de mappages de configuration et de secrets est un élément clé de l'utilisation de Kubernetes. Pour afficher le contexte d'un secret base64 avec Cloud Code, passez la souris sur le secret pour le décoder.

Décoder un secret par survol de la souris avec Cloud Code