利用 AWS 的 EBS 为 kubernetes 集群添加持久化存储
条评论本文介绍如何创建一个 EBS 卷,并把这个 EBS 卷挂载到 kubernetes 集群里的 POD 上。
创建一个 EBS 卷
用 aws configure
配置好 aws 命令行之后(如果开启了 mfa ,需要先调用下 eval $(aws-mfa)
),我们便可以调用下面的命令创建一个 EBS 卷:
aws ec2 create-volume --availability-zone us-east-1a --size 20 --volume-type gp2 |
上面的命令会得到类似下面的输出:
{ |
记录下 VolumeId
,会在后面的步骤中用到。
创建 K8S 中的 Persistent Volume (PV)
创建文件 aws-pv.yaml
:
apiVersion: "v1" |
利用 kubectl 创建 Persistent Volume :
kubectl apply -f aws-pv.yaml |
可用命令 kubectl get pv
来查看创建的 Persistent Volume 的状态:
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM REASON AGE |
创建 Persistent Volume Claim
创建 Persistent Volume Claim (PVC) 和之前创建的 PV 进行绑定,K8S 中的 POD 通过 PVC 来使用 PV 。
创建文件 pvc.yaml
:
kind: PersistentVolumeClaim |
通过 kubectl
创建 PVC :
kubectl apply -f pvc.yaml |
查看创建的 PVC :
kubectl get pvc |
在 POD 中使用 PVC
先创建对应 PVC 的 volume :
volumes: |
再添加 mount :
volumeMounts: |
Some Tips
一个 EBS 最多只能挂在到一台 EC2 上,如果希望多台机器上的 POD 能共享数据, 则需要使用 EFS、NFS 或 GlusterFS。
References
- 本文链接:https://hiberabyss.github.io/2017/11/22/k8s-persistent-volume/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!