AWS EKS 如何调整 Persistent Volumes (EBS)大小
AWS 如何 大小 调整 EBS persistent
2023-09-14 09:08:37 时间
在AWS EKS群集上,在编写本文时,默认情况下,无法调整使用默认gp2 StorageClass配置的卷的大小。这是因为在默认StorageClass上,allowVolumeExpansion设置为false,从而阻止卷扩展:
$ kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
gp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer false 78d
为了解决这个问题,我们可以检查默认定义中的allowVolumeExpansion设置是否存在:
$ kubectl get sc gp2 -o yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
(...)
name: gp2
parameters:
fsType: ext4
type: gp2
provisioner: kubernetes.io/aws-ebs
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
为了能够修改此StorageClass,我们可以使用kubectl patch命令,如下所示:
$ kubectl patch sc gp2 -p '{"allowVolumeExpansion": true}'
storageclass.storage.k8s.io/gp2 patched
此设置将告诉Kubernetes CSI可以调整基础卷(EBS volume)的大小。使用kubectl get sc,我们可以看到ALLOWVOLUMEEXPANSION更改为true:
$ kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
gp2 (default) kubernetes.io/aws-ebs Delete WaitForFirstConsumer true 78d
我们可以使用kubectl get pv查看卷的当前大小,或者通过使用df简单地检查pod上的卷大小:
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-a1448f38-5f28-492e-a09c-8a900b9fb43e 35Gi RWO Delete Bound pet2cattle/pet2cattle-static gp2 9d6h
$ kubectl exec -it pet2cattle-79979695b-7rmg6 -- df -hP
Filesystem Size Used Avail Use% Mounted on
overlay 20G 11G 9.5G 53% /
tmpfs 64M 0 64M 0% /dev
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/xvda1 20G 11G 9.5G 53% /tmp
shm 64M 0 64M 0% /dev/shm
/dev/xvdbg 35G 1.3G 34G 4% /opt/pet2cattle/static
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 3.9G 0 3.9G 0% /proc/acpi
tmpfs 3.9G 0 3.9G 0% /proc/scsi
tmpfs 3.9G 0 3.9G 0% /sys/firmware
请记住,在容器上识别带有linux挂载的VolumeMounts可能是一项复杂的任务。
最后,要调整卷的大小,我们可以将存储属性更改为要调整其大小的新大小:
$ kubectl get pvc pet2cattle-data -o yaml | sed 's/storage: 35Gi/storage: 40Gi/g' | kubectl apply -f -
persistentvolumeclaim/pet2cattle-data configured
CSI可能需要一段时间来进行更改,但最终我们将能够看到卷的大小被修改
请注意AWS eks 修改 storage 大小,每6小时可以修改一次,不可以频繁修改
$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-a1448f38-5f28-492e-a09c-8a900b9fb43e 40Gi RWO Delete Bound pet2cattle/pet2cattle-static gp2 9d6h
$ kubectl exec -it pet2cattle-79979695b-7rmg6 -- df -hP
Filesystem Size Used Avail Use% Mounted on
overlay 20G 11G 9.5G 53% /
tmpfs 64M 0 64M 0% /dev
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/xvda1 20G 11G 9.5G 53% /tmp
shm 64M 0 64M 0% /dev/shm
/dev/xvdbg 40G 1.3G 38G 4% /opt/pet2cattle/static
tmpfs 3.9G 12K 3.9G 1% /run/secrets/kubernetes.io/serviceaccount
tmpfs 3.9G 0 3.9G 0% /proc/acpi
tmpfs 3.9G 0 3.9G 0% /proc/scsi
tmpfs 3.9G 0 3.9G 0% /sys/firmware
相关文章
- 如何使用awsEnum基于提供的凭证枚举AWS云端资源
- Linux使用root用户登录(AWS EC2)
- MySQL Error number: MY-011423; Symbol: ER_KEYRING_AWS_FAILED_TO_ACCESS_OR_CREATE_KEYRING_DATA_FILE; SQLSTATE: HY000 报错 故障修复 远程处理
- 清除AWS实例和卷详解程序员
- Amazon AWS云服务常见问题解答(AWS云架构师面试必备)架构师
- 使用AWS建立优质Redis服务(awsredis)
- 亚马逊AWS S3故障4小时,波及 Adobe、Slack 等数千家线上服务
- AWS 将提供 8TB 或 16TB 内存的新型实例
- 如何评价 MXNet 被亚马逊AWS 选为官方深度学习平台
- 头号玩家AWS意外落败!微软获100亿美元云服务超级大单
- Twitter宣布牵手AWS交付其时间表,首次尝试使用公有云扩展实时服务
- AWS Linux:云计算时代的高效操作系统(awslinux)
- 深入研究AWS如何调用MySQL(aws调用mysql)
- AWS改变MySQL配置,创建更加美好的未来(aws改mysql配置)
- AWS快速拉取MySQL日志,轻松管理日志记录(aws拉取mysql日志)
- 使用AWS管理MySQL,了解相关费用支出(aws mysql 费用)
- 实现高可用性的AWS与MySQL复制(aws mysql 复制)