RousselTMLEARNING

Articles

Package managers

The different package managers for Kubernetes and their advantages.

Introduction #

Package managers in Kubernetes simplify the deployment, management and configuration of applications in the cluster. They let you describe, manage and automate complex deployments through standardised configuration files.

Helm #

The most popular package manager for Kubernetes.

Overview #

Helm is a package manager for Kubernetes that automates the deployment and management of applications. It uses “charts” to package and version complete applications.

Features #

Helm lets you manage application versions, define custom configuration values and simplify repetitive deployments thanks to templates.

Usage example #

helm install my-app stable/my-chart

This command installs a chart named my-app from the stable repository.

Kustomize #

A template-free approach to configuration management.

Overview #

Kustomize lets you manage Kubernetes configurations without needing templates. It applies transformations to YAML resources to customise deployments, while avoiding file duplication.

Features #

Kustomize handles overlays and YAML patches, and makes it easier to manage multiple environments with specific variations without duplicating resources.

Usage example #

kustomize build ./my-app
This command generates the deployment configuration by applying the overlays defined in my-app.

Carvel #

A suite of tools for managing Kubernetes applications.

Overview #

Carvel is a collection of Kubernetes configuration management tools, offering a modular approach to packaging, dependency management and dynamic application configuration.

Features #

Carvel includes tools such as ytt for templating, kbld for image management and kapp for deploying and managing resources.

Usage example #

ytt -f config/ | kapp deploy -a my-app -f -
This command uses ytt to generate the configurations and kapp to deploy the application.

GitOps #

A deployment management approach based on version control.

Overview #

GitOps is a methodology in which the source code in a Git repository represents the desired state of the Kubernetes cluster. Configuration changes made in Git automatically trigger cluster updates through operators such as ArgoCD or Flux.

Features #

GitOps provides traceability of changes, version management and configuration auditing by keeping a history in Git.

Usage example #

kubectl apply -f https://github.com/my-org/my-app-config
This command synchronises the cluster with the application configurations defined in Git.

Operator #

Advanced application management through dedicated controllers. That said, more and more operators are now deployed via HELM.

Overview #

Operators let you manage complex applications through dedicated Kubernetes controllers. They automate state and lifecycle management for applications that require particular configurations and dependencies.

Features #

Operators encapsulate application-specific logic such as database backups, scaling and rolling updates, while respecting the application's own practices.

Usage example #

kubectl apply -f my-operator.yaml
This command installs an Operator dedicated to managing a complex application.

Choosing a package manager #

  • Helm: for packaged applications and simple deployments with many templates.
  • Kustomize: for deployments that need fine-grained customisation without duplicating configurations.
  • Carvel: for a modular, flexible approach with dedicated tools for each task.
  • GitOps: for environments where configurations must be versioned and audited.
  • Operator: for complex applications whose dependencies and lifecycles are managed automatically.

Related articles

Bonnes Pratiques Kubernetes

Meilleures pratiques pour sécuriser et optimiser les déploiements Kubernetes.

Comparaison Offres Kubernetes

Analyse complète des offres managées de Kubernetes avec points forts, fonctionnalités, tarification et intégr…

Stratégies de placement Kubernetes

Présentation des stratégies de placement dans Kubernetes pour optimiser la gestion des charges de travail ave…