Note

You can download this article as a PDF

Kubernetes Plugin

CommunityEnterprise

Containers provide a lightweight system-level virtualization solution with minimal overhead, as applications within virtual partitions utilize the operating system’s standard system call interface without requiring emulation or running in a separate virtual machine. Kubernetes manages a set of containers to create a flexible execution environment for various applications and services

The Bacula Enterprise Kubernetes Plugin is designed to securely store all critical Kubernetes objects and meta-data that are essential for the functioning of the application or service.

Since Bacula Enterprise 18.1, the plugin supports KubeVirt objects. This technology provides a unified development platform where developers can build, modify, and deploy applications residing in both Application Containers as well as Virtual Machines in a common, shared environment.

This includes the following namespaced objects:

  • Config Map

  • Cron Job

  • Daemon Set

  • Data Sources (KubeVirt)

  • Data Volumes (KubeVirt)

  • Deployment

  • Endpoint

  • Horizontal Pod Autoscaler

  • Ingress

  • Job

  • Limit Range

  • Network Attachment Definition (KubeVirt)

  • Network Policy

  • Persistent Volume Claim

  • Pod

  • Pod Disruption Budget

  • Pod Template

  • Replica Set

  • Replication Controller

  • Resource Quota

  • Role

  • Role Binding

  • Secret

  • Service

  • Service Account

  • Stateful Set

  • PVC Data Archive

  • Virtual Machine (KubeVirt)

  • Virtual Machine Instance Type (KubeVirt)

  • Virtual Machine Preference (KubeVirt)

  • Volume Snapshot

Note

The PVC Data does not precisely correspond to a Kubernetes Object, but rather serves as a repository of actual data that exists on the chosen PVC.

and non namespaced objects:

  • Etcd

  • Cluster Role

  • Cluster Role Binding

  • Migration Policy (KubeVirt)

  • Namespace

  • Persistent Volume

  • Storage Class

  • Virtual Machine Cluster Instance Type (KubeVirt)

  • Virtual Machine Cluster Preference (KubeVirt)

  • Volume Snapshot Class

  • Volume Snapshot Content

All namespaced objects which belong to a particular namespace are grouped together for easy backup data browsing and recovery.

Note

The Ingress backups are available since Bacula Enterprise 16.0.14.

Note

The Cluster Roles, Cluster Role Bindings, VolumeSnapshotClass, namespaced Roles, namespaced Role Bindings, Cron Jobs, Jobs, Horizontal Pod Autoscaler, Network Policy and KubeVirt resources backups are available since Bacula Enterprise 18.1.

Proper authorization is necessary for users and service accounts to access the server API. This involves going through authentication, authorization, and admission control. In order to effectively back up Kubernetes objects, it is essential to have a user or service account with the appropriate permissions and rights to be authenticated and authorized to access the API server and the objects that need to be backed up.

To ensure successful object configuration backups, it is essential for the user or service account to have the capability to read and list the objects. Additionally, for PVC Data backup, the user or service account must also possess the ability to create and delete pods. This is necessary as the plugin will need to create and delete the Bacula Backup Proxy Pod during the backup process. These user permissions can be checked by query command user_permissions.

See the Kubernetes documentation for more details.

Read more:

See also

Next articles:

Go back to: Containers.