Trident overview
Trident is an open-source and fully-supported storage orchestrator for containers and Kubernetes distributions, including VMware Tanzu.
Trident is an open-source, fully supported storage orchestrator for containers and Kubernetes distributions like Red Hat OpenShift, VMware Tanzu, Anthos by Google Cloud, Rancher etc. Trident works with the entire NetApp storage portfolio, including the NetApp ONTAP and Element storage systems, and it also supports NFS and iSCSI connections. Trident accelerates the DevOps workflow by allowing end users to provision and manage storage from their NetApp storage systems without requiring intervention from a storage administrator.
An administrator can configure a number of storage backends based on project needs and storage system models that enable advanced storage features, including compression, specific disk types, or QoS levels that guarantee a certain level of performance. After they are defined, these backends can be used by developers in their projects to create persistent volume claims (PVCs) and to attach persistent storage to their containers on demand.
Trident has a rapid development cycle and, like Kubernetes, is released four times a year.
The latest version of Trident is 22.04 released in April 2022. A support matrix for what version of Trident has been tested with which Kubernetes distribution can be found here.
Starting with the 20.04 release, Trident setup is performed by the Trident operator. The operator makes large scale deployments easier and provides additional support, including self healing for pods that are deployed as a part of the Trident install.
With the 21.01 release, a Helm chart was made available to ease the installation of the Trident Operator.
Deploy Trident operator using Helm
-
First set the location of the user cluster’s
kubeconfig
file as an environment variable so that you don’t have to reference it, because Trident has no option to pass this file.[netapp-user@rhel7]$ export KUBECONFIG=~/tanzu-install/auth/kubeconfig
-
Add the NetApp Trident helm repository.
[netapp-user@rhel7]$ helm repo add netapp-trident https://netapp.github.io/trident-helm-chart "netapp-trident" has been added to your repositories
-
Update the helm repositories.
[netapp-user@rhel7]$ helm repo update Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "netapp-trident" chart repository ...Successfully got an update from the "bitnami" chart repository Update Complete. ⎈Happy Helming!⎈
-
Create a new namespace for the installation of Trident.
[netapp-user@rhel7]$ kubetcl create ns trident
-
Create a secret with DockerHub credentials to download the Trident images.
[netapp-user@rhel7]$ kubectl create secret docker-registry docker-registry-cred --docker-server=docker.io --docker-username=netapp-solutions-tme --docker-password=xxxxxx -n trident
-
For user or workload clusters managed by TKGS (vSphere with Tanzu) or TKG with management cluster deployments, complete the following procedure to install Trident:
-
Ensure that the logged in user has the permissions to create service accounts in trident namespace and that the service accounts in trident namespace have the permissions to create pods.
-
Run the below helm command to install Trident operator in the namespace created.
[netapp-user@rhel7]$ helm install trident netapp-trident/trident-operator -n trident --set imagePullSecrets[0]=docker-registry-cred
-
-
For a user or workload cluster managed by TKGI deployments, run the following helm command to install Trident operator in the namespace created.
[netapp-user@rhel7]$ helm install trident netapp-trident/trident-operator -n trident --set imagePullSecrets[0]=docker-registry-cred,kubeletDir="/var/vcap/data/kubelet"
-
Verify that the Trident pods are up and running.
NAME READY STATUS RESTARTS AGE trident-csi-6vv62 2/2 Running 0 14m trident-csi-cfd844bcc-sqhcg 6/6 Running 0 12m trident-csi-dfcmz 2/2 Running 0 14m trident-csi-pb2n7 2/2 Running 0 14m trident-csi-qsw6z 2/2 Running 0 14m trident-operator-67c94c4768-xw978 1/1 Running 0 14m [netapp-user@rhel7]$ ./tridentctl -n trident version +----------------+----------------+ | SERVER VERSION | CLIENT VERSION | +----------------+----------------+ | 22.04.0 | 22.04.0 | +----------------+----------------+
Create storage-system backends
After completing the Trident Operator install, you must configure the backend for the specific NetApp storage platform you are using. Follow the links below to continue the setup and configuration of Trident.