Kubernetes orchestration
Introduction
Kubernetes (K8s) is an open-source container orchestration platform that automates the deployment, scaling, and management of containerized applications.
SFTPPlus MFT can run as a containerized file transfer server or transfer automation service in Kubernetes and OpenShift. It supports SFTP, FTPS, HTTPS, AS2, and other file transfer protocols without requiring a separate application server or database. The deployment can use the networking, storage, configuration, and secret management facilities already available in your cluster.

Supported Kubernetes environments
SFTPPlus MFT can run in an on-premises cluster, OpenShift, or managed Kubernetes services such as:
- Azure Kubernetes Service
- Amazon Elastic Kubernetes Service (EKS)
- Google Kubernetes Engine (GKE)
Any modern Kubernetes version is supported, and the container can use current Linux distributions. SFTPPlus MFT can also run in native Windows containers, which we use every day to test SFTPPlus across various Windows environments. See the system requirements documentation for more details about supported operating systems.
Start with the example resources
The SFTPPlus Kubernetes repository provides example Kubernetes resources for single-pod, autoscaled, and persistent-storage deployments. Use them as a starting point and adapt their namespaces, storage classes, network services, and resource settings to your cluster.
The SFTPPlus Docker repository contains the container build files, entry point, and configuration examples used to create an SFTPPlus image. This gives your team control over the image build and the SFTPPlus version deployed in each environment.
The following deployment manifest is a partial snippet that illustrates a two-replica worker configuration. It is not a self-contained example: the namespace, persistent volume claim, ConfigMap, Secret, and initialization script need to be created separately.
apiVersion: apps/v1
kind: Deployment
metadata:
name: sftpplus-worker
namespace: manual-tests
labels:
app: sftpplus-worker
spec:
replicas: 2
selector:
matchLabels:
app: sftpplus-worker
template:
metadata:
labels:
app: sftpplus-worker
spec:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: 'OnRootMismatch'
containers:
- name: worker
image: proatria/sftpplus-trial:5.26.4-linux-x64
command: ['/bin/sh']
args: ['/opt/sftpplus-initialization/worker-init.sh']
ports:
- name: sftp
containerPort: 10022
- name: https-files
containerPort: 10443
volumeMounts:
- name: sftpplus-storage
mountPath: /opt/sftpplus-storage
- name: sftpplus-initialization
mountPath: /opt/sftpplus-initialization
- name: sftpplus-worker-credentials
mountPath: /opt/sftpplus-worker-credentials
readOnly: true
volumes:
- name: sftpplus-storage
persistentVolumeClaim:
claimName: sftpplus-storage
- name: sftpplus-initialization
configMap:
name: sftpplus-initialization-v1
- name: sftpplus-worker-credentials
secret:
secretName: sftpplus-worker-credentialsManage configuration with GitOps
The SFTPPlus .INI configuration file can be supplied through a Kubernetes ConfigMap. Cluster secrets can provide sensitive files and values separately from the main configuration. This separation lets teams review deployment and application configuration while keeping credentials out of version control.
GitOps controllers such as Argo CD can apply the container, ConfigMap, Secret references, storage, and network service from the same reviewed repository. For more detail about configuration workflows and command-line automation, see the DevOps and GitOps solution.
Scale and keep transfers available
Kubernetes services and external load balancers can distribute incoming connections across SFTPPlus replicas. SFTPPlus cluster support synchronizes configuration between instances and centralizes events on the primary node. Persistent or shared storage can be selected according to how files need to be accessed across replicas.
This allows a deployment to scale file transfer volume by adding instances and maintain availability by load balancing incoming connections.
Explore deployment guides
Browse all Kubernetes articles for configuration, storage, and deployment examples.
