动态扩容pvc

现象

镜像可以pull,但是push的时候出现500的异常:

unexpected HTTP status: 500 Internal Server Error, progress=null

查看registry后端报错:

time="2020-10-12T19:31:48+08:00" level=error msg="response completed with error" err.code=unknown err.detail="filesystem: write /var/lib/registry/docker/registry/v2/repositories/mysqld-exporter/_uploads/9fd3ce15-b256-4705-9e6b-1b0a9d5d8646/startedat: disk quota exceeded" err.message="unknown error" go.version=go1.7.6 http.request.host="docker.XXX.com:15000" http.request.id=ed2ac0be-45e2-4f63-9d6a-6ca6cdf9911c http.request.method=POST http.request.remoteaddr="XX.XX.0.23:38642" http.request.uri="/v2/mysqld-exporter/blobs/uploads/" http.request.useragent="docker/18.09.6 go/go1.10.8 git-commit/481bc77 kernel/4.19.12-1.el7.elrepo.x86_64 os/linux arch/amd64 UpstreamClient(Docker-Client/18.09.6 \\(linux\\))" http.response.contenttype="application/json; charset=utf-8" http.response.duration=12.886189ms http.response.status=500 http.response.written=262 instance.id=b70cfc85-c89b-4cca-af91-8313b1b4bbaa vars.name=mysqld-exporter version=v2.6.2 
XX.XX.0.23 - - [12/Oct/2020:19:31:48 +0800] "POST /v2/mysqld-exporter/blobs/uploads/ HTTP/1.1" 500 262 "" "docker/18.09.6 go/go1.10.8 git-commit/481bc77 kernel/4.19.12-1.el7.elrepo.x86_64 os/linux arch/amd64 UpstreamClient(Docker-Client/18.09.6 \\(linux\\))"
2020/10/12 19:31:53 http: TLS handshake error from XX.XX.0.23:56654: EOF

如上异常:disk quota exceeded

查看具体原因:registry的pvc申请最大50G;现在已经full

动态扩容pvc

在kubernetes 1.11版本中开始支持pvc创建后的扩容

storageclass的创建

allowVolumeExpansion: true
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  creationTimestamp: "2020-10-07T01:42:28Z"
  name: storage-XXX
  resourceVersion: "91416306"
  selfLink: /apis/storage.k8s.io/v1/storageclasses/storage-XXX
  uid: 5bfeb8cd-083e-11eb-8d49-a4bf0153f7fd
parameters:
  adminId: admin
  adminSecretName: ceph-secret-admin
  adminSecretNamespace: XXX-project-namespace
  claimRoot: /pvc-volumes
  monitors: mon01:6789,mon02:6789,mon03:6789
provisioner: ceph.com/cephfs
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true  //重要,增加此行

查看确认:

# kubectl get sc storage-XXX -oyaml

可以看到storageclass增加了allowVolumeExpansion字段

pvc扩容:

kubectl edit pvc pvc-registry -nkube-system     //编辑pvc

kubectl get pvc pvc-registry -nkube-system      //查看修改后的pvc


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!