/aro-pub-storage

ARO Public cluster & storage 101

Primary LanguageShellMIT LicenseMIT

ARO Public cluster & storage 101

Introduction

This is an introduction to play with Storage integration in ARO : OCS (Ceph) vs Azure Disk + File + Blob, Storage types (GRS, etc)

Disclaimer

The features described in this workshop might be not yet production-ready, we enable preview-features for the purpose of learning.

See also :

Term Definition
Container Storage Interface (CSI) A specification attempting to establish an industry standard interface that Container Orchestration Systems (COs) can use to expose arbitrary storage systems to their containerized workloads.
in-tree Code that exists in the core Kubernetes repository.
out-of-tree Code that exists somewhere outside the core Kubernetes repository.
CSI Volume Plugin A new, in-tree volume plugin that acts as an adapter and enables out-of-tree, third-party CSI volume drivers to be used in Kubernetes.
CSI Volume Driver An out-of-tree CSI compatible implementation of a volume plugin that can be used in Kubernetes through the Kubernetes CSI Volume Plugin.

Persistent storage integration

High-Level Architecture

  1. ARO does not ship with any CSI drivers, it uses Kubernetes PV framework aka in-tree plugin. These volume plugins were “in-tree” meaning their code was part of the core k8s code and shipped with the core Kubernetes binaries.

  2. ARO supports :

    • kubernetes.io/azure-disk kubernetes.io/azure-file & provisioners
    • CSI Drivers, FlexVol, hostPath
    • Red Hat OpenShift Container Storage, a provider of agnostic persistent storage SDS using CEPH

CSI Migration is in Beta (requires k8s v1.17). Timeline/status : GA Target v1.19 When enabled, CSI Migration feature shims all plugin operations from the existing in-tree plugin

  • for azureDisk to the disk.csi.azure.com CSI driver
  • for azureFile to the file.csi.azure.com CSI driver

ToC

  1. Setup Tools
  2. Check subscription
  3. Setup environment variables
  4. Setup pre-requisites
    1. Create RG
    2. Create Storage
    3. Get a Red Hat pull secret
    4. Setup Network
  5. Setup ARO cluster
  6. Setup HELM
  7. Setup CSI drivers
    1. Setup Azure Disk CSI driver
    2. Setup Azure File CSI driver
    3. Setup Rook & cephFS CSI driver