Handling Images

Two sets of container images are required for deployment:

  1. Alluxio images, provided by your Alluxio sales representative

  2. Publicly accessible images for third party components

The images must be served by an image registry accessible to the Kubernetes cluster. For the Alluxio images, it is expected that they are uploaded to a registry managed by the user.

An image registry is a centralized location for storing and sharing your container images. It can be either public or private. Cloud provider may come with its container registry as a service. For example, Amazon Elastic Container Registry(ECR)arrow-up-right, Azure Container Registry (ACR)arrow-up-right, and Google Container Registry (GCR)arrow-up-right. Private registries may also be provided from your local system or within private networks of your organization.

Alluxio images

The following image files are provided:

  • alluxio-operator-3.2.1-docker.tar is the docker image for all Alluxio operator components

  • alluxio-enterprise-AI-3.6-12.0.2-docker.tar is the docker image for Alluxio coordinator and workers

Optionally, the following images may also be provided:

  • alluxio-gateway-AI-3.6-12.0.2-docker.tar is the docker image for Alluxio's API gateway

  • alluxio-dashboard-AI-3.6-12.0.2.tar is the docker image for Alluxio's Management Console

This example shows how to upload the Alluxio operator images.

# load the image to local
$ docker load -i alluxio-operator-3.2.1-docker.tar
$ docker load -i alluxio-enterprise-AI-3.6-12.0.2-docker.tar

# retag the image with your private registry
$ docker tag alluxio/operator:3.2.1 <PRIVATE_REGISTRY>/alluxio-operator:3.2.1
$ docker tag alluxio/alluxio-enterprise:AI-3.6-12.0.2 <PRIVATE_REGISTRY>/alluxio-enterprise:AI-3.6-12.0.2

# push to the remote registry
$ docker push <PRIVATE_REGISTRY>/alluxio-operator:3.2.1
$ docker push <PRIVATE_REGISTRY>/alluxio-enterprise:AI-3.6-12.0.2

Unable to access public image registry

In the case that the Kubernetes cluster does not have access to the public internet, the images usually supplied by public image registries will not be accessible to download. These image must also be uploaded to an image registry accessible to the Kubernetes cluster to successfully deploy Alluxio. If your network environment cannot access the public image registry, you will encounter a timeout error when pulling the images:

You may notice that the cluster controller, ufs controller and collectinfo controller have started successfully, but the csi controller and csi nodeplugin remain in the ContainerCreating state. This is due to a timeout while pulling the dependent images. By using kubectl describe pod to view detailed information, you will see error messages similar to the following:

Third party dependent images

Component
Image Name
Version
Purpose

operator CSI

registry.k8s.io/sig-storage/csi-node-driver-registrar

v2.0.0

csi driver registrar dependency

operator CSI

registry.k8s.io/sig-storage/csi-provisioner

v2.0.5

csi provisioner dependency

cluster ETCD

docker.io/bitnami/etcd

3.5.9-debian-11-r24

etcd dependency

cluster ETCD

docker.io/bitnami/os-shell

11-debian-11-r2

os-shell dependency

cluster monitor

grafana/grafana

10.4.5

Monitoring dashboard

cluster monitor

prom/prometheus

v2.52.0

Metrics collection

The commands to pull the Docker images and upload them to your private image registry are as follows; be sure to set platform (ex. linux/amd64) that matches the Kubernetes cluster environment.

Updating alluxio-operator.yaml

Update the image addresses in the alluxio-operator/alluxio-operator.yaml file, adding the provisioner and driverRegistrar image addresses:

Updating alluxio-cluster.yaml

Modify the image addresses in the alluxio-operator/alluxio-cluster.yaml file accordingly.

Last updated