Deploying to Alibaba Cloud Using Network Attached Storage
Note: Official Alibaba documentation on deploying and connecting to a Kubernetes cluster is available here.
- 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
- (Helm v2 only) To install Helm, 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:
- Install FME Server.
- Helm v2: helm install -n fmeserver safesoftware/fmeserver-2019.0.0 --set fmeserver.image.tag=19208,deployment.hostname=fmeserver.[cluster-id].[region-id].alicontainer.com,storage.fmeserver.class=alicloud-nas,storage.fmeserver.accessMode=ReadWriteMany,storage.fmeserver.size=10Gi,storage.postgresql.class=alicloud-disk-ssd,storage.postgresql.size=20Gi,deployment.numCores=2,deployment.numEngines=4
- Helm v3: helm install fmeserver safesoftware/fmeserver-2019.0.0 --set fmeserver.image.tag=19208,deployment.hostname=fmeserver.[cluster-id].[region-id].alicontainer.com,storage.fmeserver.class=alicloud-nas,storage.fmeserver.accessMode=ReadWriteMany,storage.fmeserver.size=10Gi,storage.postgresql.class=alicloud-disk-ssd,storage.postgresql.size=20Gi,deployment.numCores=2,deployment.numEngines=4
- Change deployment.hostname to a domain that resolves to your cluster’s Ingress Controller as described in the previous step.
- Change fmeserver.image.tag to the build number you want to deploy.
- storage.fmeserver.class=alicloud-nas uses the Alibaba NAS set up previously.
- deployment.numEngines=4 starts four engines
- deployment.numCores=2 starts two FME Server Core pods for load balancing and fault tolerance.
- To access FME Server after it deploys, use your browser to invoke the DNS name you set in step 2.


kubectl get nodes

helm init
WARNING: This procedure is not best practice for a production cluster. For more information, see https://github.com/helm/helm/blob/master/docs/rbac.md
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.
Example:
Parameters to note: