License
The user is required to provide a license to run Alluxio, with the exception running with the trial version. The license is provided by your Alluxio sales representative in the form of a text string.
The license comes in two forms and are applied in different ways:
A cluster license is set in the cluster's configuration properties
A deployment license is applied by creating a separate license CRD
Cluster license
A cluster license is the default way to provide a license for a single test cluster; it is not recommended for production deployments.
When creating alluxio-cluster.yaml
as part of deploying Alluxio,
add alluxio.license
as an entry under spec.properties
:
apiVersion: k8s-operator.alluxio.com/v1
kind: AlluxioCluster
spec:
properties:
alluxio.license: <CLUSTER_LICENSE>
Deployment license
A deployment license is the default way to provide a license for a production deployment. A single deployment license is able to provide licenses for multiple clusters. Instead of reading the license string from configuration, the cluster processes will retrieve it from ETCD. A prerequisite for generating a deployment license is to provide the name and namespace of each cluster.
When creating alluxio-cluster.yaml
as part of deploying Alluxio,
be sure not to set alluxio.license
as an entry under spec.properties
,
otherwise it is assumed to be used as a cluster license.
After launching the cluster, wait for the coordinator and worker pods to reach a Status
of Init:2/3
;
note this will be Init:1/2
if ETCD deployment is disabled.
This means that the pods are waiting for the license to be allocated to ETCD.
Create a alluxio-license.yaml
:
apiVersion: k8s-operator.alluxio.com/v1
kind: License
metadata:
name: alluxio-license
namespace: alx-ns
spec:
clusters:
- name: <clusterName>
namespace: <namespaceName>
- name: <clusterName2>
namespace: <namespaceName2>
licenseString: <DEPLOYMENT_LICENSE>
The <DEPLOYMENT_LICENSE>
is the deployment license string as provided.
The <clusterName>
and <namespaceName>
should match the corresponding values under metadata
in alluxio-cluster.yaml
:
apiVersion: k8s-operator.alluxio.com/v1
kind: AlluxioCluster
metadata:
name: <clusterName>
namespace: <namespaceName>
If the namespace is not set, use default
as the namespace name.
If there are more than one cluster managed by the same operator,
continue to enumerate the clusters' name and namespace under clusters
.
Apply the license by running kubectl create -f alluxio-license.yaml
.
Inspect the Alluxio pods again and they should shortly transition their Status from Init
to Running
.
Updating a deployment license
Use the same alluxio-license.yaml
as before to specify the clusters.
Update the licenseString
with the new deployment license string.
Recreate the license by running delete and create.
kubectl delete -f alluxio-license.yaml
kubectl create -f alluxio-license.yaml
The Alluxio processes will be notified to pick up and apply the new license.
Checking the license status
The CLI commands under bin/alluxio license
describe the license details and the cluster utilization of license limits.
To view the contents of the license, such as listing the expiration date and cluster capacity,
run bin/alluxio license show
.
$ bin/alluxio license show
{
"type": "official",
"productionId": "<productionId>",
"licenseId": "<licenseId>",
"licenseVersion": 1,
"expirationDate": "2025-01-01T00:00:00Z",
"gracePeriodDate": "2025-01-01T00:00:00Z",
"maxTotalStorageCapacityGB": 5000
}
To view the utilization of license limits, run bin/alluxio license status
.
$ bin/alluxio license status
{
"summary": {
"vCPU": 9,
"memory": "12.00GB",
"storage": "100.00GB",
"processes": 2,
"versions": {
"<licenseId>": 2
}
},
"processes": {
"10.0.0.1:29999": {
"licenseId": "<licenseId>",
"vCPU": 8,
"memory": "8.00GB",
"storage": "100.00GB"
},
"alluxio-coordinator-0.alluxio:19998": {
"licenseId": "<licenseId>",
"vCPU": 1,
"memory": "4.00GB"
}
}
}
The summary
section describes the aggregate of all the values listed by each individual process.
The fields of particular note are:
storage
is the total worker capacity, which is compared against the license'smaxTotalStorageCapacityGB
if it existsprocesses
is the total number of processes, which is compared against the license'smaxProcessCount
if it existsversions
maps the license ID to the number of processes configured with the corresponding license. It is expected that all processes are configured with the same license, but a mismatch could occur due to an incomplete license update.
Last updated