automation Tripwire Adds Container Configuration Assessment Service

L’approvisionnement est un élément qui prend de plus en plus d’importance dans la pile cloud native. À mesure que les délais de livraison des logiciels s’accélèrent, il est de plus en plus nécessaire d’automatiser et de configurer rapidement les environnements informatiques. L’application de configurations standard sur un cluster de nœuds peut grandement faciliter le déploiement et la maintenance. Heureusement, de nombreux outils existent désormais pour aider les opérateurs à configurer rapidement les ressources informatiques.

Ci-dessous, nous poursuivons notre exploration des outils utiles de la Cloud Native Computing Foundation (CNCF). Ce groupe d’outils se concentre sur les concepts d’automatisation et de configuration. De nombreux outils de la CNCF dans ce domaine sont natifs de Kubernetes, ce qui permet d’automatiser l’extension de l’architecture native du cloud pour l’informatique de pointe, le bare metal et le traitement AI/ML. À partir de 2022, il y a neuf projets d’incubation et de bac à sable des projets CNCF qui entrent dans cette catégorie.

KubeEdge

Framework informatique de pointe natif Kubernetes (projet sous CNCF)

Site Web | GitHub

L’informatique de périphérie devient de plus en plus courante à mesure que les entreprises cherchent à réduire la sortie coûteuse de données sur Internet. Les organisations peuvent également préférer gérer l’informatique à la périphérie pour des raisons de sécurité. KubeEdge, qui est devenu un projet CNCF en incubation en 2020, aide à étendre les capacités natives du cloud auxquelles les opérateurs s’attendent en périphérie. Le cadre peut être utilisé pour aider à créer un écosystème de cloud computing en périphérie, en gérant des contraintes uniques telles que la fiabilité du réseau et les limitations de ressources sur les nœuds périphériques. À l’aide de KubeEdge, vous pouvez déployer des applications ML/AI à la périphérie ou mettre à l’échelle des architectures de périphérie hautement distribuées.

Akri

Une interface de ressources Kubernetes pour la périphérie

Site Web | GitHub

Certains opérateurs peuvent souhaiter exécuter Kubernetes sur des nœuds périphériques. Cependant, à la périphérie d’un réseau, vous pouvez prendre en charge de nombreux appareils qui sont trop petits pour exécuter eux-mêmes Kubernetes. Ces appareils ont souvent une disponibilité intermittente et utilisent des protocoles de communication uniques. Par exemple, ONVIF est une norme utilisée par de nombreuses caméras IP.

Le projet open source Akri est conçu pour aider à mieux découvrir et gérer les petits périphériques périphériques, également appelés périphériques leaf. Akri est construit sur le framework natif Kubernetes Device Plugins. Selon la documentation, Akri excelle dans la “gestion de l’apparition et de la disparition dynamiques des périphériques leaf”. Au moment d’écrire ces lignes, Akri est un projet bac à sable avec la CNCF.

cdk8s

Kit de développement cloud pour Kubernetes

Site Web | GitHub

L’un des problèmes de Kubernetes est sa complexité, qui peut entraîner une courbe d’apprentissage abrupte. Ainsi, pouvoir configurer Kubernetes dans les langues que vous connaissez le mieux est un moyen de réduire cette barrière à l’entrée.

CDK for Kubernetes (cdk8s) est une boîte à outils de développement cloud pour Kubernetes qui vous permet d’utiliser le même langage pour créer et configurer votre application.

À l’aide de cdk8s, vous pouvez définir des applications en TypeScript, JavaScript, Python, Java et Go. Il produit ensuite YAML, qui peut être appliqué pour définir des applications Kubernetes pour n’importe quel cluster. Cela réduit le besoin d’écrire un tas de modèles YAML et de copier-coller; ce que certains appellent l’ingénierie YAML. L’outil a été développé par les développeurs d’AWS et a ensuite été open source pour que tous puissent l’utiliser. C’est maintenant un projet bac à sable au sein de la CNCF.

Dépositaire du cloud

Appliquer des règles standard et des optimisations de coûts pour le cloud

Site Web | GitHub

Cloud Custodian est une boîte à outils robuste mais simple pour appliquer des politiques standard sur votre infrastructure cloud. Il s’agit d’un langage spécifique au domaine (DSL) YAML permettant de définir des politiques qui prennent des mesures de gestion sur les ressources cloud. L’outil prend en charge les trois principaux fournisseurs de services cloud : AWS, GCP et Azure.

À l’aide de Cloud Custodian, vous pouvez remplacer les configurations ad hoc par des règles standard pour des éléments tels que les politiques de sécurité, le contrôle d’accès, l’optimisation des coûts du cloud, etc. La documentation présente de nombreux exemples de stratégies pouvant être appliquées à votre environnement. Par exemple, cette stratégie trouvera tout service fonctionnant à 60 % et augmentera le seuil de 30 % :

policies:
  - name: account-service-limits
    resource: account
    filters:
      - type: service-limit
        threshold: 60
    actions:
      - type: request-limit-increase
        percent-increase: 30

L’application Cloud Custodian elle-même est écrite en Python et peut être exécutée sur la plupart des systèmes d’exploitation. Pour l’essayer, vous pouvez lire les guides de démarrage pour AWS, Azure et GCP.

KubeDL

Un utilitaire pour exécuter facilement des modèles de deep learning sur Kubernetes

Site Web | GitHub

KubeDL est un autre projet CNCF open source qui peut être utilisé pour configurer et exécuter plus facilement vos charges de travail d’apprentissage automatique à l’aide de Kubernetes. KubeDL prend en charge les frameworks d’apprentissage en profondeur populaires, notamment TensorFlow, PyTorch, XGBoost, Mars et MPI. Ceux-ci peuvent tous être exécutés à partir d’un seul contrôleur.

Par exemple, voici un exemple de configuration d’une tâche d’entraînement avec Tensorflow :

apiVersion: training.kubedl.io/v1alpha1
kind: "TFJob"
metadata:
  name: "mnist"
  namespace: kubedl
spec:
  cleanPodPolicy: None
  tfReplicaSpecs:
    Worker:
      replicas: 1
      restartPolicy: Never
      template:
        spec:
          containers:
            - name: tensorflow
              image: kubedl/tf-mnist-with-summaries:1.0
              command:
                - "python"
                - "/var/tf_mnist/mnist_with_summaries.py"
                - "--log_dir=/train/logs"
                - "--learning_rate=0.01"
                - "--batch_size=150"
              volumeMounts:
                - mountPath: "/train"
                  name: "training"
              resources:
                limits:
                  cpu: 2048m
                  memory: 2Gi
                requests:
                  cpu: 1024m
                  memory: 1Gi
          volumes:
            - name: "training"
              hostPath:
                path: /tmp/data
                type: DirectoryOrCreate

À l’aide de KubeDL, vous pouvez gérer des modèles, suivre les versions de modèles et ajuster automatiquement les fonctionnalités pour optimiser l’exécution des charges de travail d’apprentissage automatique dans les K8. Il fournit également un moyen de stocker les métadonnées de vos projets, des fonctionnalités de planification avancées, la possibilité de synchroniser les fichiers lors du lancement du conteneur et d’autres fonctionnalités. Au moment de la rédaction, KubeDL est un projet sandbox CNCF.

Provisionnement d’hôtes bare metal pour Kubernetes

Site Web | GitHub

Metal3.io est un outil de provisionnement de Kubernetes sur des hôtes bare metal. Il propose une API Kubernetes pour gérer les détails de provisionnement sur le métal nu ; la pile de provisionnement elle-même est exécutée sur Kubernetes. Metal3.io utilise le concept d’un BareMetalHost pour définir l’état souhaité de l’hôte, les états de santé du métal nu et les détails de provisionnement tels que les paramètres liés au déploiement d’une image.

Vous trouverez ci-dessous un extrait d’exemple tiré de la documentation. Écrit en YAML, il s’agit d’un exemple partiel d’exécution d’un cluster d’une ressource BareMetalHost.

apiVersion: metal3.io/v1alpha1
kind: BareMetalHost
metadata:
  creationTimestamp: "2019-09-20T06:33:35Z"
  finalizers:
  - baremetalhost.metal3.io
  generation: 2
  name: bmo-controlplane-0
  namespace: bmo-project
  resourceVersion: "22642"
  selfLink: /apis/metal3.io/v1alpha1/namespaces/bmo-project/baremetalhosts/bmo-controlplane-0
  uid: 92b2f77a-db70-11e9-9db1-525400764849
spec:
  bmc:
    address: ipmi:
    credentialsName: bmo-controlplane-0-bmc-secret
  bootMACAddress: 98:03:9b:61:80:48
  consumerRef:
    apiVersion: machine.openshift.io/v1beta1
    kind: Machine
    name: bmo-controlplane-0
    namespace: bmo-project
  externallyProvisioned: true
  hardwareProfile: default
…

Les nouvelles fonctionnalités incluent le pivotement dans le cadre du flux de travail CI, qui permet le déplacement d’objets entre les clusters. Au moment d’écrire ces lignes, Metal3.io est un projet sandbox au sein de la CNCF.

OpenYourte

Étendre les K8 jusqu’au bord

Site Web | GitHub

OpenYurt est un autre outil à considérer si vous cherchez à amener une infrastructure cloud native comme Kubernetes à la périphérie. Il s’agit d’un cadre assez extensible pour apporter des fonctionnalités natives du cloud, telles que l’élasticité, la haute disponibilité, la journalisation et DevOps dans les environnements de périphérie.

Par exemple, OpenYurt fournit des capacités d’auto-réparation. Ainsi, si une connexion de nœud est déconnectée, elle peut se synchroniser automatiquement une fois la connexion rétablie. Il fournit ces fonctionnalités et bien d’autres pour l’orchestration des services de périphérie et la gestion des périphériques terminaux.

De nombreuses entreprises ont utilisé OpenYurt pour étendre l’expérience Kubernetes native aux environnements périphériques dans les espaces de logistique, de transport, d’IoT, de CDN, de vente au détail et de fabrication. Au moment d’écrire ces lignes, OpenYurt est un projet bac à sable au sein de la CNCF.

SuperEdge

Gestion des conteneurs pour l’informatique de pointe

Site Web | GitHub

SuperEdge est un autre framework pour étendre Kubernetes aux environnements périphériques. Son ensemble de fonctionnalités de base comprend des composants tels que edge-health, qui s’exécute sur les nœuds finaux pour détecter leur état de santé. Il y a aussi lite-apiserverune version allégée du serveur d’API Kubernetes qui fournit des fonctionnalités de mise en cache et d’authentification.

SuperEdge utilise également un tunnel réseau pour les requêtes proxy entre le cloud et la périphérie. En utilisant ces proxys, le projet se présente comme un outil non intrusif pour la configuration des appareils périphériques. SuperEdge a été créé par Tencent cloud et est maintenant un projet sandbox CNCF.

Fée Clochette

Un moteur de workflow pour le provisioning bare metal

Site Web | GitHub

Un autre utilitaire conçu pour faciliter le provisionnement du métal nu est Tinkerbell, le moteur de provisionnement du métal nu open source géré par Equinix. Il comprend cinq microservices clés : un serveur réseau, un service de métadonnées, un environnement d’installation du système d’exploitation et un moteur de workflow. Le moteur de flux de travail, appelé Tink, est le principal moteur de provisionnement qui communique à l’aide de gRPC et offre une CLI avec laquelle les développeurs peuvent travailler.

Tinkerbell est suffisamment générique pour fonctionner avec n’importe quel système d’exploitation et fournit des API déclaratives pour contrôler l’automatisation par programme. Et puisque Tinkerbell est soutenu par Equinix Metal, vous pouvez à peu près garantir que le projet sera activement maintenu dans le futur. Tinkerbell est un projet bac à sable de la CNCF. Pour plus d’informations, vous pouvez consulter la documentation ici.

Dernières pensées

Comme vous le remarquerez, bon nombre de ces outils peuvent être exécutés sur Kubernetes, ce qui vous permet de gérer votre infrastructure de la même manière que vous gérez vos applications. Étant donné que nous avons déjà vu tant d’investissements dans la configuration du cloud, une grande partie du nouveau développement dans ce domaine concerne la configuration pour des scénarios alternatifs, comme le métal nu, la périphérie et l’IoT.

La Cloud Native Computing Foundation (CNCF) est devenue une plaque tournante d’excellents outils pour prendre en charge les opérations sur l’ensemble de la pile cloud native. Et en dehors de la configuration, il existe de nombreux packages pour les proxys de service, le stockage persistant, la planification, le CI/CD, etc.