Stable-V20.07
Total Page:16
File Type:pdf, Size:1020Kb
Trident Documentation NetApp May 10, 2021 Introduction 1 What is Trident? 3 2 Trident for Kubernetes 5 2.1 Upgrading/Downgrading Trident....................................6 2.2 Deploying................................................ 14 2.3 Common tasks.............................................. 32 2.4 Concepts................................................. 96 2.5 Known issues............................................... 107 2.6 Troubleshooting............................................. 108 3 Design and Architecture Guide 111 3.1 Introduction............................................... 111 3.2 Concepts and Definitions......................................... 112 3.3 NetApp Products and Integrations with Kubernetes........................... 116 3.4 Kubernetes Cluster Architecture and Considerations.......................... 117 3.5 Storage for Kubernetes Infrastructure Services............................. 121 3.6 Storage Configuration for Trident.................................... 126 3.7 Deploying Trident............................................ 132 3.8 Integrating Trident............................................ 135 3.9 Backup and Disaster Recovery...................................... 145 3.10 Security Recommendations....................................... 151 4 Frequently Asked Questions 153 4.1 Trident for Kubernetes Installation.................................... 153 4.2 Trident Backend Configuration and Use................................. 155 4.3 Trident Upgrade, Support, Licensing, and Troubleshooting....................... 161 5 Trident for Docker 165 5.1 Deploying................................................ 165 5.2 Host and storage configuration...................................... 166 5.3 Common tasks.............................................. 184 5.4 Known issues............................................... 192 5.5 Troubleshooting............................................. 192 6 Requirements 195 6.1 Supported frontends (orchestrators)................................... 195 6.2 Supported backends (storage)...................................... 195 i 6.3 Feature Requirements.......................................... 196 6.4 Supported host operating systems.................................... 196 6.5 Host configuration............................................ 196 6.6 Storage system configuration...................................... 197 7 Getting help 199 8 trident 201 8.1 Command-line options.......................................... 201 8.2 Ports................................................... 202 9 tridentctl 203 9.1 create................................................... 203 9.2 delete................................................... 204 9.3 get.................................................... 204 9.4 import volume.............................................. 204 9.5 install................................................... 205 9.6 logs.................................................... 205 9.7 send.................................................... 206 9.8 uninstall................................................. 206 9.9 update.................................................. 206 9.10 upgrade.................................................. 206 9.11 version.................................................. 206 10 REST API 209 11 Simple Kubernetes install 211 ii Trident Documentation Storage Orchestrator for Containers Introduction 1 Trident Documentation 2 Introduction CHAPTER 1 What is Trident? Trident is a fully supported open source project maintained by NetApp. It has been designed from the ground up to help you meet the sophisticated persistence demands of your containerized applications. Through its support for popular container platforms like Kubernetes and Docker, Trident understands the natural and evolving languages of those platforms, and translates requirements expressed or implied through them into an automated and orchestrated response from the infrastructure. Today, that includes our ONTAP (AFF/FAS/Select/Cloud), Element (HCI/SolidFire), and SANtricity (E/EF-Series) data management software, plus the Azure NetApp Files service in Azure, the Cloud Volumes Service for AWS in Amazon Web Services, and the Cloud Volumes Service for GCP in Google Cloud. That list continues to grow. Trident’s support policy is outlined on NetApp’s Support site under the Trident’s Release and Support Lifecycle tab. 3 Trident Documentation 4 Chapter 1. What is Trident? CHAPTER 2 Trident for Kubernetes Trident integrates natively with Kubernetes and its Persistent Volume framework to seamlessly provision and manage volumes from systems running any combination of NetApp’s ONTAP (AFF/FAS/Select/Cloud), Element (HCI/SolidFire), and SANtricity (E/EF-Series) data management platforms, plus our Azure NetApp Files service in Azure, Cloud Volumes Service for AWS, and Cloud Volumes Service for GCP. Relative to other Kubernetes provisioners, Trident is novel in the following respects: 1. It is the first out-of-tree, out-of-process storage provisioner that works by watching events at the Kubernetes API Server, affording it levels of visibility and flexibility that cannot otherwise be achieved. 2. It is capable of orchestrating across multiple platforms at the same time through a unified interface. Rather than tying a request for a persistent volume to a particular system, Trident selects one from those it manages based on the higher-level qualities that the user is looking for in their volume. Trident tightly integrates with Kubernetes to allow your users to request and manage persistent volumes using native Kubernetes interfaces and constructs. It’s designed to work in such a way that your users can take advantage of the underlying capabilities of your storage infrastructure without having to know anything about it. It automates the rest for you, the Kubernetes administrator, based on policies that you define. A great way to get a feel for what we’re trying to accomplish is to see Trident in action from the perspective of an end user. This is a great demonstration of Kubernetes volume consumption when Trident is in the mix, through the lens of Red Hat’s OpenShift platform, which is itself built on Kubernetes. All of the concepts in the video apply to any Kubernetes deployment. While some details about Trident and NetApp storage systems are shown in the video to help you see what’s going on behind-the-scenes, in standard deployments Trident and the rest of the infrastructure is completely hidden from the user. Let’s lift up the covers a bit to better understand Trident and what it is doing. This introductory video is a good place to start. While based on an earlier version of Trident, it explains the core concepts involved and is a great way to get started on the Trident journey. 5 Trident Documentation 2.1 Upgrading/Downgrading Trident Welcome to the Upgrade/Downgrade guide. This is the best place to get started for evaluating upgrades and determin- ing your upgrade path. 2.1.1 Upgrading Trident Trident follows a quarterly release cadence, delivering 4 releases every calendar year. Each new release builds on top of the previous releases, providing new features and performance enhancements as well as bug fixes and improvements. Users are always encouraged to upgrade Trident at least once a year in order to take advantage of the great new features Trident has to offer. Important: Upgrading to a Trident release that is more than a year ahead (5 releases ahead and above) will require you to perform a multi-step upgrade. This section walks you through the upgrade process to move to the latest release of Trident. Determining your upgrade candidate Trident recommends upgrading to the YY.MM release from the YY-1.MM release and any in between; for example, to perform a direct upgrade to 20.07 it is recommended to do so from 19.07 and above (including dot releases such as 19.07.1). If you are working with an earlier release ( < YY-1.MM), you must perform a multi-step upgrade. This will require you to first move to the most recent release that fits your four-release window. If you are running 18.07 and seek to upgrade to the 20.07 release, then: 1. You must first upgrade from 18.07 to 19.07. Refer to the documentation of the respective release to obtain specific instructions for upgrading. 2. Upgrade from 19.07 to 20.07 using the instructions provided below. Important: All upgrades for versions 19.04 and earlier will require the migration of Trident’s metadata from it’s own etcd to CRD objects. Make sure you check the documentation of the release to understand how the upgrade will work. Important: If you are running Kubernetes 1.17 or later, and are looking to upgrade to 20.07.1, you should specify parameter.fsType (file system type) in StorageClasses used by Trident. This is a requirement for enforcing Security Contexts for SAN volumes. You can delete and re-create StorageClass objects without disrupting pre-existing volumes. The sample-input directory contains examples, such as storage-class-basic.yaml.templ, and storage-class- bronze-default.yaml. For more information, take a look at the Known issues tab. Understanding your upgrade paths When upgrading to 20.07, users have two distinct paths: 1. Using the Trident Operator. 2. Using tridentctl. 6 Chapter 2. Trident for Kubernetes Trident Documentation We will examine both here. Warning: Trident only supports the beta feature release of Volume Snapshots. When upgrading Trident, all previous alpha snapshot CRs and CRDs (Volume Snapshot Classes, Volume