Ametnes Data Service Location#
Generally, an Ametnes Data Service Location (ADSL) is a kubernetes cluster that has the Ametnes Cloud agent has to be installed and configured with a location id. It is preferable, but certainly not a requirement, that a dedicated kubernetes cluster is set assign as a data service location.
Installing the Ametnes Cloud agent.#
After selecting a kubernetes cluster to act as your Ametnes Data Service location,
-
Add the helm repository.
-
Generate a UUID on your command line with
uuidgen
. -
Install the Ametnes Cloud Agent and set the
agent.config.location
.
Register your Ametnes Data Service location#
In your Ametnes Cloud console account, create a Data Service Location with
- User Supplied Id:
26F522B3-E412-44D0-9992-F47F03F3192B
- Name:
DemoDsl
- Code:
USE2
- Click
Create
After a short while, the data service location should come online
.
Configuring the Ametnes Cloud agent.#
The Ametnes Cloud agent expects your kubernetes cluster to be setup with;
- A storage class, which is used for creating persistence volumes.
- If nodes are tainted, the Ametnes Cloud agent must be configured to assign taints and tolerations in order to ensure service kubernetes workloads are scheduled appropriately.
- Permission to create kubernetes resources such as
StatefulSet
s,Deployment
s,Pod
s,ServiceAccount
s.
Storage class settings#
If no storage class configuration is supplied to the Ametnes Cloud agent, it will use the default storage class for all data services provisioned by the agent. You can supply a different storage class to the agent for all data services or for specific data services.
Global storage class setting#
To supply global storage class such as AdslEfs
, update the Ametnes Cloud agent helm chart values file with
Data service specific storage class#
If you wish to supply a specific data service, such as neo4j:4.2
with a separate storage class, such as gp2
, but keep other data services use the global
storage class, update the Ametnes Cloud agent helm chart values file with
agent:
config:
persistence:
storageClass: 'AdslEfs'
resources:
service/neo4j:4.2:
persistence:
storageClass: 'gp2'
Taints and Tolerations#
Global taints and tolleration setting#
You are also able to configure a specific data service, such as mysql:8.0
to run on specific nodes in your data service locationwith a separate storage class, such as gp2
, but keep other data services use the global
storage class, update the Ametnes Cloud agent helm chart values file with
agent:
config:
tolerations:
- key: ametnes.io/role
operator: Equal
value: GeneralNode
effect: NoSchedule
affinity:
- matchExpressions:
- key: ametnes.io/role
operator: In
values:
- GeneralNode
resources:
service/neo4j:4.2:
persistence:
storageClass: 'gp2'
Data service specific taints and toleration#
You are also able to configure a specific data service, such as mysql:8.0
to run on specific nodes in your data service locationwith a separate storage class, such as gp2
, but keep other data services use the global
storage class, update the Ametnes Cloud agent helm chart values file with
agent:
config:
tolerations:
- key: ametnes.io/role
operator: Equal
value: GeneralNode
effect: NoSchedule
affinity:
- matchExpressions:
- key: ametnes.io/role
operator: In
values:
- GeneralNode
resources:
service/neo4j:4.2:
tolerations:
- key: ametnes.io/role
operator: Equal
value: MLNode
effect: NoSchedule
affinity:
- matchExpressions:
- key: ametnes.io/role
operator: In
values:
- MLNode