Setup FSM
Prerequisites
This demo of FSM v1.2.7 requires:
- a cluster running Kubernetes v1.19.0 or greater (using a cloud provider of choice, minikube, or similar)
- a workstation capable of executing Bash scripts
- The Kubernetes command-line tool -
kubectl
- the FSM code repo available locally
Note: This document assumes you have already installed credentials for a Kubernetes cluster in ~/.kube/config and
kubectl cluster-info
executes successfully.
Download and install the FSM command-line tool
The fsm
command-line tool contains everything needed to install and configure Open Service Mesh.
The binary is available on the FSM GitHub releases page.
GNU/Linux
Download the 64-bit GNU/Linux or macOS binary of FSM v1.2.7:
system=$(uname -s | tr '[:upper:]' '[:lower:]')
arch=$(uname -m | sed -E 's/x86_/amd/' | sed -E 's/aarch/arm/')
release=v1.2.7
curl -L https://github.com/flomesh-io/fsm/releases/download/${release}/fsm-${release}-${system}-${arch}.tar.gz | tar -vxzf -
./${system}-amd64/fsm version
macOS
Download the 64-bit macOS binaries for FSM v1.2.7
system=$(uname -s | tr "[:upper:]" "[:lower:]")
arch=$(uname -m)
release=v1.2.7
curl -L https://github.com/flomesh-io/fsm/releases/download/$release/fsm-$release-$system-$arch.tar.gz | tar -vxzf -
./$system-$arch/fsm version
The fsm
CLI can be compiled from source according to this guide.
Installing FSM on Kubernetes
With the fsm
binary downloaded, unzipped, and placed into $PATH
, we are ready to install Open Service Mesh on a Kubernetes cluster:
The command below shows how to install FSM on your Kubernetes cluster.
This command enables
Prometheus,
Grafana and
Jaeger integrations.
The fsm.enablePermissiveTrafficPolicy
chart parameter in the values.yaml
file instructs FSM to ignore any policies and
let traffic flow freely between the pods. With Permissive Traffic Policy mode enabled, new pods
will be injected with Pipy, but traffic will flow through the proxy and will not be blocked by access control policies.
Note: Permissive Traffic Policy mode is an important feature for brownfield deployments, where it may take some time to craft SMI policies. While operators design the SMI policies, existing services will continue to operate as they have been before FSM was installed.
export fsm_namespace=fsm-system # Replace fsm-system with the namespace where FSM will be installed
export fsm_mesh_name=fsm # Replace fsm with the desired FSM mesh name
fsm install \
--mesh-name "$fsm_mesh_name" \
--fsm-namespace "$fsm_namespace" \
--set=fsm.enablePermissiveTrafficPolicy=true \
--set=fsm.deployPrometheus=true \
--set=fsm.deployGrafana=true \
--set=fsm.deployJaeger=true
Read more on FSM’s integrations with Prometheus, Grafana, and Jaeger in the observability documentation.
Next Steps
Now that the FSM control plane is up and running, add applications to the mesh.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.