Understanding Stork in Portworx Backup

Stork is a cloud native storage operator runtime scheduler plugin. It translates decisions of a scheduler orchestration system in such a way that an external cloud native storage solution can act upon. By doing so, Stork extends Kubernetes capabilities with the help of the underlying storage provider, making it more stateful aware.

Stork facilitates stateful workflows such as snapshots, clones, cloud backups, and migrations. Stork provides:

  • Kubernetes native mechanism for executing these workflows, and makes it aware of storage and scheduler.
  • A storage provider-agnostic method for executing these workflows.

Where is Stork installed?

Stork is an agent that needs to be installed on all clusters where you want to back up from and restore to. Stork bridges the gap between Portworx Backup running on your administration cluster, and the remaining clusters, where you need to back up from and restore to.

Stork capabilities

Stork acts as an abstraction layer between the underlying storage provider and Portworx Backup. Stork enables Portworx Backup to perform the following tasks:

  • Execute backups and restores on the target cluster
  • Push the Kubernetes resources to the configured object storage location
  • Integrate with storage providers for taking snapshots and pushing snapshots to object storage

How to install Stork

You can install Stork with or without Portworx Enterprise using the following methods:

Deployment method without Portworx Enterprise

To install Stork version 23.7.0 on your Kubernetes cluster without installing Portworx Enterprise, run the below commands:

  1. Download the Stork deployment spec:

    curl -fsL -o stork-spec.yaml "https://install.portworx.com/pxbackup?comp=stork&storkNonPx=true"
  2. In the stork-spec.yaml, change the Stork version to 23.7.0 if the version differs.

  3. Apply the stork-spec.yaml to install the latest Stork version:

    kubectl apply -f stork-spec.yaml

Deployment Method with Portworx Enterprise

If you have to install Stork 23.7.0 along with Portworx Enterprise, you can opt-in for Daemonset installation or Portworx Operator installation:

Portworx DaemonSet installation

To install Stork using Daemonset installation method:

  1. Fetch the Kubernetes version and then download stork-spec.yaml:

    KBVER=$(kubectl version --short | awk -Fv '/Server Version: /{print $3}')
    curl -fsL -o stork-spec.yaml "https://install.portworx.com/pxbackup?kbver=${KBVER}&comp=stork"
  2. Apply the stork-spec.yaml with the below command:

    kubectl apply -f stork-spec.yaml

Portworx Operator installation

Perform the below steps for Stork installation using Portworx operator option:

  1. Edit the stc (Kubernetes resource):

    kubectl edit stc -n <portworx-deployed-namespace>
  2. Append the Stork image and version details in Stork section:

        webhook-controller: "true"
      enabled: true
      image: openstorage/stork:23.7.0
  3. Save and exit.

Prepare air-gapped environment

If your application cluster is air-gapped, then you must pull the following openstorage images before installing Portworx Backup:

  • openstorage/cmdexecutor:0.1
  • openstorage/stork:23.7.0
  1. You must then push the above images to your internal registry server, accessible by the air-gapped nodes.

  2. After pushing the images, follow the instructions in the Install Portworx Backup on-premises section to install Portworx Backup.

Last edited: Friday, Aug 4, 2023