如何在Openshift中扩展存储



Openshift容器平台包含Storage部分,我们可以在其中管理可用存储的列表。但是,使用UI无法编辑存储。唯一可用的操作是删除。此处提供的文档没有描述扩展存储的简单操作。

如何在Openshift中扩展存储?

是否使用allowVolumeExpansion: true创建StorageClass?如果要扩展现有的PV/PVC,则需要通过StorageClass使用PV/PVC。有关更多详细信息,请参阅此处:启用持久卷声明的扩展。

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: standard-testing
:

如果您无法调整StorageClass以指定allowVolumeExpansion: true,那么您唯一的其他选择就是创建一个新的、更大的PV并迁移数据。

这可能通过脚本实现自动化。假设只有RWO卷可用,这将需要一些最小的停机时间,因为卷一次只能连接到一个卷。

#!/usr/bin/env bash
# usage: script.sh <deploymentconfig-name> <pvc-claim-name> <volume-name-on-deployment> <desired-pvc-size>
# example: script.sh postgresql postgresql postgresql-data 5Gi
set -e
DEPLOYMENT="$1"
PVCCLAIMNAME="$2"
DEPLOYMENTVOLUMENAME="$3"
PVCSIZE="$4"
RANDOM_ID=$(uuidgen | awk -F- '{ print tolower($2) }')
oc run pv-migration --image=registry.redhat.io/rhel7/rhel-tools --replicas=0 -- tail -f /dev/null
oc set volume deploymentconfig pv-migration --add -t pvc --name=old-pv --claim-name=$PVCCLAIMNAME --mount-path=/old-pv-path
oc set volume deploymentconfig pv-migration --add -t pvc --name=new-pv --claim-name=${PVCCLAIMNAME}${RANDOM_ID} --mount-path=/new-pv-path --claim-mode=ReadWriteOnce --claim-size=$PVCSIZE
oc scale deploymentconfig $DEPLOYMENT --replicas=0
oc scale deploymentconfig pv-migration --replicas=1
# Wait for pod
while [[ -z $(oc get pods -l deploymentconfig=pv-migration -o jsonpath='{.items[?(@.status.phase=="Running")].metadata.name}' | cut -d " " -f 1) ]]
do
echo Waiting for "pv-migration" pod
sleep 1
done
oc exec $(oc get pods -l deploymentconfig=pv-migration -o jsonpath='{.items[?(@.status.phase=="Running")].metadata.name}' | cut -d " " -f 1) -- rsync -avxHAX --no-t --progress /old-pv-path/ /new-pv-path/
oc delete deploymentconfig pv-migration --grace-period=0 --force
oc set volume deploymentconfig $DEPLOYMENT --add --name=$DEPLOYMENTVOLUMENAME --claim-name=${PVCCLAIMNAME}${RANDOM_ID} --overwrite
oc scale deploymentconfig $DEPLOYMENT --replicas=1
echo Done

有一个社区指南,包含此信息和更多信息,发布在https://github.com/openshift-cs/OpenShift-Troubleshooting-Templates/blob/master/resize.md

最新更新