一 StoragClass
1.1 StorageClass概述
StorageClass作為對存盤資源的抽象定義,對用戶設定的PVC申請屏蔽后端存盤的細節,一方面減少了用戶對于存盤資源細節的關注,另一方面減輕了管理員手工管理PV的作業,由系統自動完成PV的創建和系結,實作了動態的資源供應, 基于StorageClass的動態資源供應模式將逐步成為云平臺的標準存盤配置模式,StorageClass的定義主要包括名稱、后端存盤的提供者(provisioner)和后端存盤的相關引數配置, StorageClass一旦被創建出來,則將無法修改,如需更改,則只能洗掉原StorageClass的定義重建, 示例1:定義一個名為standard的StorageClass,提供者為aws-ebs,其引數設定了一個type,值為gp2, [root@k8smaster01 study]# vi awsclass01.yaml1 kind: StorageClass 2 apiVersion: storage.k8s.io/v1 3 metadata: 4 name: standard 5 provisioner: kubernetes.io/aws-bs 6 parameters: 7 type: gp2 8
1.2 StorageClass配置引數
- 提供者(Provisioner)
- 引數(Parameters)
1.3 常見Provisioner
- AWSEBS存盤卷
1 kind: StorageClass 2 apiVersion: storage.k8s.io/v1 3 metadata: 4 name: slow 5 provisioner: kubernetes.io/aws-ebs 6 parameters: 7 type: io1 8 zone: us-east-1d 9 iopsPerGB: "10" 10引數說明如下(詳細說明請參考AWSEBS檔案):
- type:可選項為io1,gp2,sc1,st1,默認值為gp2,
- zone:AWSzone的名稱,
- iopsPerGB:僅用于io1型別的Volume,意為每秒每GiB的I/O運算元量,
- encrypted:是否加密,
- kmsKeyId:加密時的Amazon Resource Name,
- GCEPD存盤卷
1 kind: StorageClass 2 apiVersion: storage.k8s.io/v1 3 metadata: 4 name: slow 5 provisioner: kubernetes.io/gce-pd 6 parameters: 7 type: pd-standard 8 zone: us-centrall-a 9引數說明如下(詳細說明請參考GCE檔案):
- type:可選項為pd-standard、pd-ssd,默認值為pd-standard,
- zone:GCEzone名稱,
- GlusterFS存盤卷
1 apiVersion: storage.k8s.io/v1 2 kind: StorageClass 3 metadata: 4 name: slow 5 provisioner: kubernetes.io/glusterfes 6 parameters: 7 resturl: "http://127.0.0.1:8081" 8 clusterid: "xxxxxxxxxxxx" 9 restauthenabled: "true" 10 restuser: "admin" 11 secretNamespace: "default" 12 secretName: "heketi-secret" 13 gidMin: "40000" 14 gidMax: "50000" 15 volumetype: "replicate:3" 16引數說明如下(詳細說明請參考GlusterFS和Heketi的檔案):
- resturl:GlusterREST服務(Heketi)的URL地址,用于自動完成GlusterFSvolume的設定,
- restauthenabled:是否對GlusterREST服務啟用安全機制,
- restuser:訪問GlusterREST服務的用戶名,
- secretNamespace和secretName:保存訪問GlusterREST服務密碼的Secret資源物件名,
- clusterid:GlusterFS的ClusterID,
- gidMin和gidMax:StorageClass的GID范圍,用于動態資源供應時為PV設定的GID,
- volumetype:設定GlusterFS的內部Volume型別,例如replicate:3(Replicate型別,3份副本);disperse:4:2(Disperse型別,資料4份,冗余兩份;“none”(Distribute型別),
- OpenStackCinder存盤卷
1 kind: StorageClass 2 apiVersion: storage.k8s.io/v1 3 metadata: 4 name: gold 5 provisioner: kubernetes.io/cinder 6 parameters: 7 type: fast 8 availability: nova 9引數說明如下,
- type:Cinder的VolumeType,默認值為空,
- availability:AvailabilityZone,默認值為空,
1.4 設定默認StorageClass
要在系統中設定一個默認的StorageClass,則首先需要啟用名為DefaultStorageClass的admission controller,即在kube-apiserver的命令列引數--admission-control中增加: --admission-control-...,DefaultStorageClass [root@k8smaster01 study]# vi /etc/kubernetes/manifests/kube-apiserver.yaml1 …… 2 - --enable-admission-plugins=NodeRestriction,DefaultStorageClass 3 …… 4[root@k8smaster01 study]# systemctl restart docker kubelet 然后,在StorageClass的定義中設定一個annotation: [root@k8smaster01 study]# vi defaultclass01.yaml
1 kind: StorageClass 2 apiVersion: storage.k8s.io/v1 3 metadata: 4 name: gold 5 annotations: 6 storageclass.beta.kubernetes.io/is-default-class="true" 7 provisioner: kubernetes.io/gce-pd 8 parameters: 9 type: pd-ssd 10通過kubectl create命令創建成功后,查看StorageClass串列,可以看到名為gold的StorageClass被標記為default:
二 動態管理存盤卷
2.1 glusterfs
見《附009.Kubernetes永久存盤之GlusterFS獨立部署》和《附010.Kubernetes永久存盤之GlusterFS超融合部署》,轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/115506.html
標籤:Linux
上一篇:【Linux】檔案系統權限問題
下一篇:shell腳本
