본문 바로가기
문서 목차
ORKESTRIX설치

인클러스터 이미지 레지스트리

Harbor(엔터프라이즈 레지스트리)와 별개로, 클러스터 내부에서 자체적으로 동작하는 경량 컨테이너 이미지 레지스트리 를 구성합니다. Docker Hub 같은 공개 레지스트리 대신 docker pull/push 대상을 우리 내부망 주소로 바꿔서, 이미지를 사내에서만 저장·배포할 수 있게 합니다.

QUANTUM C&S

Harbor(엔터프라이즈 레지스트리)와 별개로, 클러스터 내부에서 자체적으로 동작하는 경량 컨테이너 이미지 레지스트리를 구성합니다. Docker Hub 같은 공개 레지스트리 대신 docker pull/push 대상을 우리 내부망 주소로 바꿔서, 이미지를 사내에서만 저장 · 배포할 수 있게 합니다.

설정값

inventory/qks/group_vars/all/all-k8s.yaml:

qks_registry_enabled: true
qks_registry_release: qks-registry
qks_registry_version: 3.0.0
qks_registry_namespace: "{{ qks_system_namespace }}"
qks_registry_fqdn: "images.{{ kube_default_domain }}"
qks_registry_replicas: 2
qks_registry_storage_type: s3   # s3 / filesystem
qks_registry_s3_bucket: mirror
qks_registry_s3_access_key: "{{ qks_cephadm_s3_access_key }}"
qks_registry_s3_secret_key: "{{ qks_cephadm_s3_secret_key }}"
qks_registry_s3_endpoint: "{{ qks_cephadm_s3_fqdn }}"
qks_registry_storage_used: false           # filesystem 모드일 때만 true
qks_registry_storage_mode: ReadWriteMany    # ReadWriteMany / ReadWriteOnce
qks_registry_storage_class: "{{ qks_filesystem_storage_class_name }}"
qks_registry_storage_size: 50Gi

qks_registry_storage_type을 filesystem으로 바꿔서 쓰려면, PVC 영속화 스위치인 qks_registry_storage_used도 함께 true로 켜야 합니다(꺼진 채로 두면 storage_type만 바꿔도 실제로는 PVC 없이 배포됩니다). storage_mode/storage_class/storage_size는 이때 사용되는 PVC 설정입니다.

실행

./install.sh ubuntu plays/qks-registry.yaml

설치 흐름

./install.sh ubuntu plays/qks-registry.yaml
  ├─ 1. 접속 도메인을 각 노드 /etc/hosts에 등록
  ├─ 2. Helm 저장소 등록 ('twuni')
  └─ 3. Helm으로 이미지 레지스트리 배포

설치 확인

kubectl get pods -n <qks_registry_namespace> -l app=docker-registry

qks-registry 파드(레플리카 수만큼)가 모두 Running이어야 합니다.

실제 동작 확인

API 상태 확인:

curl -k -s https://<qks_registry_fqdn>/v2/

{}와 함께 200이 나오면 정상입니다.

이미지 push/pull (crane 등 OCI 표준 클라이언트 사용):

crane copy <원본 이미지> <qks_registry_fqdn>/<이미지명>:<태그>
crane manifest <qks_registry_fqdn>/<이미지명>:<태그>

push와 manifest 조회(pull)가 모두 성공하면 정상입니다.

다음 단계