Rechercher

5.15. Utilitaire d'élagage d'objets pour les opérateurs basés sur Go

download PDF

L'utilitaire d'élagage operator-lib permet aux opérateurs basés sur Go de nettoyer, ou d'élaguer, les objets lorsqu'ils ne sont plus nécessaires. Les auteurs d'opérateurs peuvent également utiliser l'utilitaire pour créer des crochets et des stratégies personnalisés.

5.15.1. À propos de l'utilitaire d'élagage operator-lib

Les objets, tels que les jobs ou les pods, sont créés dans le cadre normal du cycle de vie de l'opérateur. Si l'administrateur du cluster ou l'opérateur ne supprime pas ces objets, ils peuvent rester dans le cluster et consommer des ressources.

Auparavant, les options suivantes étaient disponibles pour élaguer les objets inutiles :

  • Les auteurs d'opérateurs ont dû créer une solution d'élagage unique pour leurs opérateurs.
  • Les administrateurs de clusters devaient nettoyer les objets eux-mêmes.

L'utilitaire d'élagage operator-lib supprime les objets d'un cluster Kubernetes pour un espace de noms donné. La bibliothèque a été ajoutée à la version 0.9.0 de la bibliothèqueoperator-lib dans le cadre de l'Operator Framework.

5.15.2. Configuration de l'utilitaire d'élagage

L'utilitaire d'élagage operator-lib est écrit en Go et comprend des stratégies d'élagage courantes pour les opérateurs basés sur Go.

Exemple de configuration

cfg = Config{
        log:           logf.Log.WithName("prune"),
        DryRun:        false,
        Clientset:     client,
        LabelSelector: "app=<operator_name>",
        Resources: []schema.GroupVersionKind{
                {Group: "", Version: "", Kind: PodKind},
        },
        Namespaces: []string{"default"},
        Strategy: StrategyConfig{
                Mode:            MaxCountStrategy,
                MaxCountSetting: 1,
        },
        PreDeleteHook: myhook,
}

Le fichier de configuration de l'utilitaire d'élagage définit les actions d'élagage à l'aide des champs suivants :

Champ de configurationDescription

log

Logger utilisé pour gérer les messages de la bibliothèque.

DryRun

Booléen qui détermine si les ressources doivent être supprimées. S'il vaut true, l'utilitaire s'exécute mais ne supprime pas les ressources.

Clientset

Client-go Kubernetes ClientSet utilisé pour les appels à l'API Kubernetes.

LabelSelector

Expression du sélecteur de label Kubernetes utilisée pour trouver les ressources à élaguer.

Resources

Types de ressources Kubernetes. PodKind et JobKind sont actuellement pris en charge.

Namespaces

Liste des espaces de noms Kubernetes pour rechercher des ressources.

Strategy

Stratégie d'élagage à exécuter.

Strategy.Mode

MaxCountStrategy, MaxAgeStrategy ou CustomStrategy sont actuellement pris en charge.

Strategy.MaxCountSetting

Valeur entière pour MaxCountStrategy qui spécifie combien de ressources doivent rester après l'exécution de l'utilitaire d'élagage.

Strategy.MaxAgeSetting

Go time.Duration valeur de chaîne, telle que 48h, qui spécifie l'âge des ressources à élaguer.

Strategy.CustomSettings

Carte des valeurs qui peuvent être transmises à une fonction de stratégie personnalisée.

PreDeleteHook

Facultatif : Fonction Go à appeler avant d'élaguer une ressource.

CustomStrategy

Facultatif : Fonction Go qui met en œuvre une stratégie d'élagage personnalisée

Exécution de l'élagage

Vous pouvez appeler l'action d'élagage en exécutant la fonction execute sur la configuration d'élagage.

err := cfg.Execute(ctx)

Vous pouvez également appeler une action d'élagage en utilisant un paquet cron ou en appelant l'utilitaire d'élagage avec un événement déclencheur.

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.