문서 목차
인클러스터 이미지 레지스트리
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)가 모두 성공하면 정상입니다.