Numaflow can be installed in different scopes with different approaches.
A cluster scope installation watches and executes pipelines in all the namespaces in the cluster.
Run following command line to install latest
stable Numaflow in cluster scope.
kubectl apply -n numaflow-system -f https://raw.githubusercontent.com/numaproj/numaflow/stable/config/install.yaml
If you use kustomize, use
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - https://github.com/numaproj/numaflow/config/cluster-install?ref=stable # Or specify a version namespace: numaflow-system
A namespace installation only watches and executes pipelines in the namespace it is installed (typically
Add an argument
--namespaced to the
numaflow-server deployments to achieve namespace scope installation.
- args: - --namespaced
If there are multiple namespace scoped installations in one cluster, potentially there will be backward compatibility issue when any of the installation gets upgraded to a new version that has new CRD definition. To avoid this issue, we suggest to use minimal CRD definition for namespaced installation, which does not have detailed property definitions, thus no CRD changes between different versions.
# Minimal CRD kubectl apply -f https://raw.githubusercontent.com/numaproj/numaflow/main/config/advanced-install/minimal-crds.yaml # Controller in namespaced scope kubectl apply -n numaflow-system -f https://github.com/numaproj/numaflow/blob/main/config/advanced-install/namespaced-controller-wo-crds.yaml
If you use kustomize,
kustomization.yaml looks like below.
apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - https://github.com/numaproj/numaflow/config/advanced-install/minimal-crds?ref=stable # Or specify a version - https://github.com/numaproj/numaflow/config/advanced-install/namespaced-controller?ref=stable # Or specify a version namespace: numaflow-system
Managed Namespace Scope¶
A managed namespace installation watches and executes pipelines in a specific namespace.
To do managed namespace installation, besides
--managed-namespace and the specific namespace to the
numaflow-server deployment arguments.
- args: - --namespaced - --managed-namespace - my-namespace
By default, the Numaflow controller is installed with
Active-Passive HA strategy enabled, which means you can run the controller with multiple replicas (defaults to 1 in the manifests).
To turn off HA, add following environment variable to the deployment spec.
name: NUMAFLOW_LEADER_ELECTION_DISABLED value: "true"
If HA is turned off, the controller deployment should not run with multiple replicas.