RousselTMLEARNING

Article · Kubernetes: From Discovery to Expertise

Package managers

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.

📄 Package managers →

My progress

  • ⏱ Estimated time : ≈ 7 min

Sign in to track your progress and take notes. Sign in

💬 Questions about this lesson

No questions yet: be the first to ask for help or share your configuration.

Ask a question about this lesson →

Course Glossary

Kubernetes

An open-source container orchestration engine (sometimes called K8s) for automating the deployment, scaling, and management of containerized applicati...

Recommended Articles

Workload controllers

An overview of workload controllers in Kubernetes, their functions and use cases.

Kubernetes: exposing your applications (Services, Ingress and Gateway API)

Expose applications in Kubernetes: ClusterIP/NodePort/LoadBalancer Services, Ingress, IngressClas...

Prometheus on Kubernetes and the Prometheus web interface

Deploy Prometheus on Kubernetes with kube-prometheus-stack (Prometheus Operator, ServiceMonitor, ...

Prometheus in the Kubernetes world (Operator, ServiceMonitor, kube-prometheus-stack)

Monitor Kubernetes with Prometheus: service discovery, kube-prometheus-stack, Prometheus Operator...

Kubernetes: Pods, ReplicaSets and Deployments (deploying and updating)

Master Kubernetes workloads: anatomy of a pod, ReplicaSet, Deployment, RollingUpdate and Recreate...

Container network security and Kubernetes networking

Secure the container network: how Docker and Kubernetes networking works, CNI, default-deny Netwo...

Deploying Thanos on Kubernetes (kube-prometheus-stack, Helm and Operator)

Install Thanos on Kubernetes: sidecar via kube-prometheus-stack, objstore secret, Bitnami/kube-th...

OpenTelemetry on Kubernetes: Operator, auto-instrumentation and Collector

Deploy OpenTelemetry on Kubernetes: Collector deployment modes (DaemonSet, Deployment, sidecar, S...

HAProxy in Kubernetes: the high-performance Ingress Controller

Discover in depth how HAProxy integrates with Kubernetes: direct-to-pod architecture, hot update ...

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!