D槽空间还够吗?扩充一下可以下载更多东西

扩充挂载

昨日有讲解PV & PVC Static Provisioning的做法,今日会介绍使用StorageClass & PVC并使用AWS上的EBS来mount到Node

先来看StorageClass & PVC的关系图,再来做详细的介绍:
https://ithelp.ithome.com.tw/upload/images/20211013/20140172PjHRcRuiH8.png

从图中可以看到PV是从StorageClass去自动创建出来的元件,会去建立一个符合PVC规范并且可以Bounding,这种作法称之为Dynamic Provisioning。若对档案的读写有很高的需求(IOPS),可以使用StorageClass的方法,建立EBS volume并mount作为储存空间。

以下会进行StorageClass & PVC的实作,依照下列步骤进行前置作业:

  1. 下载IAM Policy
curl -o example-iam-
policy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-ebs- csi-driver/v0.9.0/docs/example-iam-policy.json
  1. 建立IAM Policy
aws iam create-policy --policy-name AmazonEKS_EBS_CSI_Driver_Policy –
policy-document file://example-iam-policy.json
  1. AmazonEKS_EBS_CSI_Driver_Policy加到EC2 Role
    https://ithelp.ithome.com.tw/upload/images/20211013/201401726e2Ow18HNN.png
    https://ithelp.ithome.com.tw/upload/images/20211013/20140172aUM2cp2z7U.png

  2. Deploy EBS CSI Driver

kubectl apply -k "github.com/kubernetes-sigs/aws-ebs-csi-
driver/deploy/kubernetes/overlays/stable/?ref=master"

以上就是要使用EBS的前置处理,接下来会介绍StorageClass & PVC的YAML

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gp3
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: ebs.csi.aws.com
parameters:
  type: gp3
reclaimPolicy: Retain
mountOptions:
  - debug

storageclass.kubernetes.io/is-default-class: "true":设置为Default
provisioner:使用gp3需要填入ebs.csi.aws.com,若是其他的Volume要填入对应的参数
parameters:
 Type:Volume有io1, io2, gp2, gp3, sc1, st1,standard这些参数可以选择
mountOptions:验证mount的时候有无成功
这边的reclaimPolicy为Retain,当Cluster或YAML被删除,EBS依旧会保留下来;反观,Delete就会直接删除

pvc的设定,可以直接拿昨日的档案,并修改storageClassName为gp3,参考如下:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  resources:
    requests:
      storage: 2Gi
  accessModes:
    - ReadWriteOnce
  storageClassName: gp3

deploy YAML也可以拿昨日的档案来使用,所以[Day28]不熟悉的话,会影响到今日的文章,若不熟悉的话,要看个1000次

结果

https://ithelp.ithome.com.tw/upload/images/20211013/20140172pBwMS4xyJc.png
蓝勾:预设的EBS Volume
黑勾:Lens metrics Feature所产生的EBS Volume
红勾:此篇建立的EBS Volume
绿勾:EC2再删除时,是否会保留,此篇建立的EBS会被保留
https://ithelp.ithome.com.tw/upload/images/20211013/20140172RagC3CfXXT.png
成功将EBS Volume(gp3) mount到/var/www/html

删除Node(EC2),验证reclaimPolicy: Retain
https://ithelp.ithome.com.tw/upload/images/20211013/20140172O9wcB7Z7vV.png
https://ithelp.ithome.com.tw/upload/images/20211013/20140172Eo6HCuLCkD.png

此篇建立的EBS确实有保留下来,且处於available的状态,若资料很重要的话,避免误删Node可以使用Retain策略,相对的,资料并不是很重要,那就可以选用Delete的方式,当Node被删除就可以连同EBS一起删除

今日的讲解说明就到这边,明日会做懒人包文章大解析


<<:  後端说修改时只需要送「有修改的栏位」过来

>>:  通用漏洞评分系统 (CVSS)

第4章:档案系统结构介绍

前言 从上一章节,我们学会了基本的登入与登出桌面环境,以及如何将终端机从桌面环境进行打开,还有基本的...

Day 13 实作调色盘App(1/3)

我们可以藉由小小的调色盘App专案来加强我们对一些元件的认识 1.先新增一个专案 -> Cr...

DAY8 资料室--Vuex的那些方法

前言 昨天我们在 Vuex 入门研究了 State 、 Mutation 的功能与使用方法 只是想提...

{CMoney战斗营} 的第六周 # 游戏模组套用

好不容易拟定了游戏专题的方向,接下来是要奠基在上一届学长姐的模组上继续成长出自己的专案。 为期一个月...

EP 11: Passing Data for Navigation in TopStore App - II

Hello, 各位 iT邦帮忙 的粉丝们大家好~~~ 本篇是 Re: 从零开始用 Xamarin 技...