Deploying to Alibaba Cloud Using Network Attached Storage
- Launch the Cluster
- Navigate to the Alibaba Cloud console.
- Click Container Service.
- Click Create Kubernetes Cluster.
- Click the Managed Kubernetes tab at top.
- Specify the following parameters:
- Cluster name, Region, Zone, and VPC.
- Choose an Instance type and Node count. For example, ecs.mn4.large Instance type, quantity of 3. Uncheck Attach Data Disk.
- Specify an ssh key pair for logging in.
- For all other parameters, keep the default settings.
- Click Create. The cluster may take 5-10 minutes to create.
- Connect to the Cluster
- Go to Container Service in the Alibaba Cloud console.
- Click on the cluster you just created.
- At the bottom of the page is a kubectl config file. Copy and paste this into a .yaml file on your machine.
- Set the environment variable KUBECONFIG to point to this file in your terminal.
- To check you are connected, run:
- Install Helm
- Check that Helm is installed. Run:
- Give Helm deploy permissions.
- Configure Network Attached Storage (NAS)
- In the Alibaba Cloud console, navigate to the NAS console
- Click Create File System.
- Specify the parameters:
- Region and Zone: Specify the same as your Kubernetes cluster.
- Under Storage Type, select SSD performance-type
- Storage Type: NFS
- Click OK.
- Click Add Mount Point.
- Specify the parameters:
- Mount Point Type: VPC
- Select the same VPC as the one in which the Kubernetes cluster is running.
- Select the default VPC permission group.
- Click OK.
- To add an NAS storage class to the Kubernetes cluster, go to the Alibaba documentation on using NAS storage in a Kubernetes cluster.
- Under "Dynamic storage volumes", copy and paste the "Install the plug-in" config file into a file on your local machine.
- In that file, modify the value of NFS_SERVER in the controller container, and the "server" in the volume to be the mount point URL created for the NAS.
- Remove the nodeSelector section completely.
- Apply to the cluster with kubectl apply -f <path_to_yaml>, where <path_to_yaml> is the config file created in the previous step.
- You should now have a storage class in your cluster with the name "alicloud-nas" that can use the FME Server System Share.
- Deploy FME Server
- Add the Safe Software Helm repository:
- Construct a hostname for the FME Server deployment. Alibaba’s Kubernetes Ingress Controller resolves a DNS name in the form:
- Create a values.yaml file that will pass user-supplied parameter values into the Helm chart.
- (Optional) Update parameters in values.yaml.
- Install FME Server.
- To access FME Server after it deploys, invoke the external IP in your browser.


kubectl get nodes

helm version
If not installed, install Helm.
Run:
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default


helm repo add safesoftware https://safesoftware.github.io/helm-charts/
*.<cluster-id>.<region-id>.alicontainer.com
For example, you can use DNS hostname:
fmeserver.<cluster-id>.<region-id>.alicontainer.com
<cluster-id> and region can be found on the Container Service page of the Alibaba Cloud console. See the Alibaba documentation for a mapping of regions to <region-id>.
To get the default Helm chart values file, run:
helm show values <chart>
For example:
helm show values safesoftware/fmeserver-2021.2
To write the values to a file:
helm show values safesoftware/fmeserver-2021.2 >> values.yaml
For more information on value files, see the Helm Docs.
A current list of supported parameters for FME Server can be found on GitHub.
The following are parameters you may want to change in the values.yaml file:

Parameter |
Example or Possible Value |
Description |
---|---|---|
fmeserver.image.tag | 2021.2 | Set to the FME Server major release version you want to deploy, such as 2021.0 or 2021.2. You must also update the FME Server version when installing the chart; for example, safesoftware/fmeserver-2021.2 |
fmeserver.engines[].name | “standard-group” | The name of the engine group. This can be changed, particularly if creating multiple engine groups. |
fmeserver.engines[].engines | 2 | Controls the number of engine pods to start. |
fmeserver.engines[].type | STANDARD | DYNAMIC | Controls the type of engine to start. |
deployment.hostname | Set to the IP address of the ingress controller noted previously. | |
deployment.numCores | 2 | Starts two FME Server Core pods for fault tolerance and load balancing. |
deployment.useHostnameIngress | true | false | If DNS is set up for the ingress controller, specify the DNS name for deployment.hostname and leave this parameter to true. If not, specify false. |
storage.fmeserver.class | alicloud-nas | Uses the Alibaba NAS set up previously. |
helm install <name> <chart> -f values.yaml
For example:
helm install fmeserver safesoftware/fmeserver-2021.2 -f values.yaml
If you make changes to the values.yaml file after FME Server is installed (such as to scale FME Server engines), use the helm upgrade command:
helm upgrade <name> <chart> -f values.yaml
For example:
helm upgrade fmeserver safesoftware/fmeserver-2021.2 -f values.yaml