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.3.1 on your Kubernetes cluster without installing Portworx Enterprise, run the below commands:
Download the Stork deployment spec:
curl -fsL -o stork-spec.yaml "https://install.portworx.com/pxbackup?comp=stork&storkNonPx=true"
In the
stork-spec.yaml
, change the Stork version to 23.3.1 if the version differs.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.3.1 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:
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"
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:
Edit the stc (Kubernetes resource):
kubectl edit stc -n <portworx-deployed-namespace>
Append the Stork image and version details in Stork section:
stork: args: webhook-controller: "true" enabled: true image: openstorage/stork:23.3.1
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.3.1
You must then push the above images to your internal registry server, accessible by the air-gapped nodes.
After pushing the images, follow the instructions in the Install Portworx Backup on-premises section to install Portworx Backup.