StorageClass
5870 ワード
個人ブログのアドレス:https://www.huweihuang.com/kubernetes-notes/storage/storage-class.html
StorageClass
という方法で作成します. 参考記事: https://kubernetes.io/docs/concepts/storage/storage-classes/
StorageClass
1.StorageClassの概要
StorageClass
は、異なるclassが異なるサービス品質レベルおよびバックアップポリシーまたは他のポリシーなどにマッピングされる可能性がある
(class)を記述する方法を提供する.StorageClass
オブジェクトには、provisioner
、parameters
、およびreclaimPolicy
のフィールドが含まれており、PersistentVolume
を動的に割り当てる必要がある場合に使用されます.StorageClass
オブジェクトを作成すると、名前とその他のパラメータが設定され、オブジェクトが作成されると更新できません.特定のclassにバインドされていないPVCのデフォルトのStorageClass
を指定することもできます.
StorageClassオブジェクトファイルkind: StorageClass
apiVersion: storage.k8s.io/v3
metadata:
name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
reclaimPolicy: Retain
mountOptions:
- debug
2.StorageClassのプロパティ
2.1. Provisioner(ストレージディスペンサ)
Storage classには、どのボリュームプラグインを使用してPVを割り当てるかを決定するための (provisioner)
があり、このフィールドは指定する必要があります.内部ディスペンサを指定するか、外部ディスペンサを指定できます.外部ディスペンサのコードアドレスは、kubernetes-incubator/external-storageであり、NFS
およびCeph
などが含まれる.
2.2. Reclaim Policy(回収ポリシー)
作成されたreclaimPolicy
の回収ポリシーは、Persistent Volume
またはDelete
を含むRetain
フィールドで指定できます.デフォルトはDelete
ではありません.
2.3. マウントオプション
storage classによって動的に作成されたPersistent Volumeでは、classのmountOptions
フィールドで指定されたマウントオプションが使用されます.
2.4. パラメータ
Storage classにはstorage classボリュームに属するパラメータが記述されています.
に依存して、異なるパラメータを受け入れることができる.パラメータが省略されると、デフォルト値が使用されます.
例えば以下、Ceph RBD
を用いるkind: StorageClass
apiVersion: storage.k8s.io/v3
metadata:
name: fast
provisioner: kubernetes.io/rbd
parameters:
monitors: 30.36.353.305:6789
adminId: kube
adminSecretName: ceph-secret
adminSecretNamespace: kube-system
pool: kube
userId: kube
userSecretName: ceph-secret-user
fsType: ext4
imageFormat: "2"
imageFeatures: "layering"
対応するパラメータの説明
kind: StorageClass
apiVersion: storage.k8s.io/v3
metadata:
name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
reclaimPolicy: Retain
mountOptions:
- debug
kind: StorageClass
apiVersion: storage.k8s.io/v3
metadata:
name: fast
provisioner: kubernetes.io/rbd
parameters:
monitors: 30.36.353.305:6789
adminId: kube
adminSecretName: ceph-secret
adminSecretNamespace: kube-system
pool: kube
userId: kube
userSecretName: ceph-secret-user
fsType: ext4
imageFormat: "2"
imageFeatures: "layering"
monitors
:Ceph monitor、カンマ区切り.このパラメータは必須です.adminId
:CephクライアントID(ceph pool)でイメージを作成します.デフォルトはadminです.adminSecretNamespace
:adminSecretのnamespace.デフォルトは「default」です.adminSecret
:adminIdのSecret名.このパラメータは必須です.指定したsecretには、「kubernetes.io/rbd」の値を持つtypeパラメータが必要です.pool
:Ceph RBDプール.デフォルトはrbdです.userId
:CephクライアントIDは、RBDミラー(RBDイメージ)をマッピングするために使用される.デフォルトはadminIdと同じです.userSecretName
:RBDミラーをマッピングするためのuserIdのCeph Secretの名前.PVCと同じnamespaceに存在する必要があります.このパラメータは必須です.提供されるsecretには、「kubernetes.io/rbd」という値のtypeパラメータが必要です.たとえば、kubectl create secret generic ceph-secret --type="kubernetes.io/rbd" \
--from-literal=key='QVFEQ1pMdFhPUnQrSmhBQUFYaERWNHJsZ3BsMmNjcDR6RFZST0E9PQ==' \
--namespace=kube-system
fsType
:KubernetesがサポートするfsType.デフォルト:ext 4.imageFormat
:Ceph RBDミラー形式、「1」または「2」.既定値は1です.imageFeatures
:このパラメータはオプションで、imageFormatを「2」に設定してのみ使用できます.現在サポートされている機能はlayering
にすぎません.デフォルトは「」です.機能は開いていません.