2 Star 2 Fork 2

mirrors_kubernetes-sigs / nfs-subdir-external-provisioner

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 10.53 KB
一键复制 编辑 原始数据 按行查看 历史
Dan 提交于 2023-03-13 18:56 . remove all the extraneous newlines

NFS Subdirectory External Provisioner Helm Chart

The NFS subdir external provisioner is an automatic provisioner for Kubernetes that uses your already configured NFS server, automatically creating Persistent Volumes.

TL;DR;

$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
$ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=x.x.x.x \
    --set nfs.path=/exported/path

Introduction

This charts installs custom storage class into a Kubernetes cluster using the Helm package manager. It also installs a NFS client provisioner into the cluster which dynamically creates persistent volumes from single NFS share.

Prerequisites

  • Kubernetes >=1.9
  • Existing NFS Share

Installing the Chart

To install the chart with the release name my-release:

$ helm install my-release nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=x.x.x.x \
    --set nfs.path=/exported/path

The command deploys the given storage class in the default configuration. It can be used afterwards to provision persistent volumes. The configuration section lists the parameters that can be configured during installation.

Tip: List all releases using helm list

Uninstalling the Chart

To uninstall/delete the my-release deployment:

$ helm delete my-release

The command removes all the Kubernetes components associated with the chart and deletes the release.

Configuration

The following tables lists the configurable parameters of this chart and their default values.

Parameter Description Default
replicaCount Number of provisioner instances to deployed 1
strategyType Specifies the strategy used to replace old Pods by new ones Recreate
image.repository Provisioner image registry.k8s.io/sig-storage/nfs-subdir-external-provisioner
image.tag Version of provisioner image v4.0.2
image.pullPolicy Image pull policy IfNotPresent
imagePullSecrets Image pull secrets []
storageClass.name Name of the storageClass nfs-client
storageClass.defaultClass Set as the default StorageClass false
storageClass.allowVolumeExpansion Allow expanding the volume true
storageClass.reclaimPolicy Method used to reclaim an obsoleted volume Delete
storageClass.provisionerName Name of the provisionerName null
storageClass.archiveOnDelete Archive PVC when deleting true
storageClass.onDelete Strategy on PVC deletion. Overrides archiveOnDelete when set to lowercase values 'delete' or 'retain' null
storageClass.pathPattern Specifies a template for the directory name null
storageClass.accessModes Set access mode for PV ReadWriteOnce
storageClass.volumeBindingMode Set volume binding mode for Storage Class Immediate
storageClass.annotations Set additional annotations for the StorageClass {}
leaderElection.enabled Enables or disables leader election true
nfs.server Hostname of the NFS server (required) null (ip or hostname)
nfs.path Basepath of the mount point to be used /nfs-storage
nfs.mountOptions Mount options (e.g. 'nfsvers=3') null
nfs.volumeName Volume name used inside the pods nfs-subdir-external-provisioner-root
nfs.reclaimPolicy Reclaim policy for the main nfs volume used for subdir provisioning Retain
resources Resources required (e.g. CPU, memory) {}
rbac.create Use Role-based Access Control true
podSecurityPolicy.enabled Create & use Pod Security Policy resources false
podAnnotations Additional annotations for the Pods {}
priorityClassName Set pod priorityClassName null
serviceAccount.create Should we create a ServiceAccount true
serviceAccount.name Name of the ServiceAccount to use null
serviceAccount.annotations Additional annotations for the ServiceAccount {}
nodeSelector Node labels for pod assignment {}
affinity Affinity settings {}
tolerations List of node taints to tolerate []
labels Additional labels for any resource created {}
podDisruptionBudget.enabled Create and use Pod Disruption Budget false
podDisruptionBudget.maxUnavailable Set maximum unavailable pods in the Pod Disruption Budget 1

Install Multiple Provisioners

It is possible to install more than one provisioner in your cluster to have access to multiple nfs servers and/or multiple exports from a single nfs server. Each provisioner must have a different storageClass.provisionerName and a different storageClass.name. For example:

helm install second-nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
    --set nfs.server=y.y.y.y \
    --set nfs.path=/other/exported/path \
    --set storageClass.name=second-nfs-client \
    --set storageClass.provisionerName=k8s-sigs.io/second-nfs-subdir-external-provisioner
1
https://gitee.com/mirrors_kubernetes-sigs/nfs-subdir-external-provisioner.git
git@gitee.com:mirrors_kubernetes-sigs/nfs-subdir-external-provisioner.git
mirrors_kubernetes-sigs
nfs-subdir-external-provisioner
nfs-subdir-external-provisioner
master

搜索帮助