OpenShift_Registry_Storage
페이지 정보
본문
안녕하세요.
OKD에는 OCR(OpenSHift Container Registry)라는 통합 컨테이너 레지스트리가 존재합니다.
통합 레지스트리는 새 이미지가 푸시 될 때마다 네임스페이스 이름 및 이미지 메타 데이터와 같은 데이터를 OKD에 전달하고 OKD는 새 이미지에 반응해 빌드 및 배포를 합니다.
OCR은 초기 설치 시 자동으로 배치 되는데, Volume 형식이 emptyDir로 되어있어 노드에서 파드가 제거되면 데이터가 영구적으로 삭제됩니다.
OCR에 기존 데이터를 백업하고 데이터를 영구 저장하기 위해 PV(Persistent Volume)을 붙여 복원하는 테스트 결과를 공유하려고 합니다.
* Platform Version : OpenShift 3.9
# oc -n default get dc/docker-registry -o yaml
...
volumeMounts:
- mountPath: /registry
name: registry-storage
- mountPath: /etc/secrets
name: registry-certificates
...
volumes:
- emptyDir: {}
name: registry-storage
...
=== registry data backup ===
# oc rsync <docker-registry pod-name>:/registry ./<destination-dir-name>
=== pv 및 pvc 생성 ===
# oc -n default create -f pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
creationTimestamp: null
finalizers:
- kubernetes.io/pv-protection
labels:
deploymentconfig: docker-registry
name: registry-1
namespace: "default"
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 30Gi
nfs:
path: /exports/registry
server: 192.168.211.147
persistentVolumeReclaimPolicy: Retain
status: {}
# oc -n default create -f pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
creationTimestamp: null
finalizers:
- kubernetes.io/pvc-protection
labels:
deploymentconfig: docker-registry
name: registry
namespace: "default"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
selector:
matchLabels:
project: default
volumeName: registry-1
status: {}
=== Registry scale down 후 Volume 수정 ===
# oc -n default scale dc/docker-registry --replicas=0
# oc -n default edit dc/docker-registry
...
- name: registry-storage
persistentVolumeClaim:
claimName: <pvc-name>
...
=== Registry scale up ===
# oc -n default scale dc/docker-registry --replicas=1
=== 기존 데이터 복원 ===
# oc -n default rsync registry/docker <docker-registry pod-name>:/registr
참고 URL
https://docs.okd.io/3.9/dev_guide/volumes.html#adding-volumes
https://docs.okd.io/3.9/dev_guide/volumes.html#removing-volumes
OKD에는 OCR(OpenSHift Container Registry)라는 통합 컨테이너 레지스트리가 존재합니다.
통합 레지스트리는 새 이미지가 푸시 될 때마다 네임스페이스 이름 및 이미지 메타 데이터와 같은 데이터를 OKD에 전달하고 OKD는 새 이미지에 반응해 빌드 및 배포를 합니다.
OCR은 초기 설치 시 자동으로 배치 되는데, Volume 형식이 emptyDir로 되어있어 노드에서 파드가 제거되면 데이터가 영구적으로 삭제됩니다.
OCR에 기존 데이터를 백업하고 데이터를 영구 저장하기 위해 PV(Persistent Volume)을 붙여 복원하는 테스트 결과를 공유하려고 합니다.
* Platform Version : OpenShift 3.9
# oc -n default get dc/docker-registry -o yaml
...
volumeMounts:
- mountPath: /registry
name: registry-storage
- mountPath: /etc/secrets
name: registry-certificates
...
volumes:
- emptyDir: {}
name: registry-storage
...
=== registry data backup ===
# oc rsync <docker-registry pod-name>:/registry ./<destination-dir-name>
=== pv 및 pvc 생성 ===
# oc -n default create -f pv.yml
apiVersion: v1
kind: PersistentVolume
metadata:
creationTimestamp: null
finalizers:
- kubernetes.io/pv-protection
labels:
deploymentconfig: docker-registry
name: registry-1
namespace: "default"
spec:
accessModes:
- ReadWriteOnce
capacity:
storage: 30Gi
nfs:
path: /exports/registry
server: 192.168.211.147
persistentVolumeReclaimPolicy: Retain
status: {}
# oc -n default create -f pvc.yml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
creationTimestamp: null
finalizers:
- kubernetes.io/pvc-protection
labels:
deploymentconfig: docker-registry
name: registry
namespace: "default"
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
selector:
matchLabels:
project: default
volumeName: registry-1
status: {}
=== Registry scale down 후 Volume 수정 ===
# oc -n default scale dc/docker-registry --replicas=0
# oc -n default edit dc/docker-registry
...
- name: registry-storage
persistentVolumeClaim:
claimName: <pvc-name>
...
=== Registry scale up ===
# oc -n default scale dc/docker-registry --replicas=1
=== 기존 데이터 복원 ===
# oc -n default rsync registry/docker <docker-registry pod-name>:/registr
참고 URL
https://docs.okd.io/3.9/dev_guide/volumes.html#adding-volumes
https://docs.okd.io/3.9/dev_guide/volumes.html#removing-volumes
- 이전글OpenShift Git Secrets 생성 (1) 21.02.26
- 다음글OpenShift Metrics-Server 배포 21.01.29
댓글목록
등록된 댓글이 없습니다.