728x90
kubernetes 클러스터를 구축하면, helm chart 설치를 통해 operator들을 설치하는 경우가 많은데,
helm chart 의 yaml 파일에는 대부분 아래와 같이 외부 registry를 사용하게끔 되어 있다.
singleuser:
podNameTemplate:
extraTolerations: []
nodeSelector: {}
extraNodeAffinity:
required: []
preferred: []
extraPodAffinity:
required: []
preferred: []
extraPodAntiAffinity:
required: []
preferred: []
networkTools:
image:
name: quay.io/jupyterhub/k8s-network-tools
tag: "3.3.7"
pullPolicy:
pullSecrets: []
jupyterhub 예시
만약 외부 registry 사용이 불가능한 상황이라면, proxy cache 기능을 통해 private registry를 사용할 것이다.
그럼 helm chart의 values.yaml에서 일일이 registry 경로를 바꾸어 주어야 하는데, mirror 기능을 사용하면 이를 자동화할 수 있다.
다시 말해, quay.io 로 요청을 했을 때, 자동으로 [private registry]/dodo_quay 로 리다이렉트할 수 있다.
(여기서 dodo_quay 는 quay.io 의 proxy cache project 이다.)
다음과 같이 certs.d 경로에 host 파일을 생성해주면 된다.
mkdir /etc/containerd/certs.d
mkdir /etc/containerd/certs.d/quay.io
sudo tee -a /etc/containerd/certs.d/quay.io/hosts.toml >/dev/null << 'EOF'
server = "https://quay.io"
[host."https://registry.ssgadm.com/v2/de_quay"]
capabilities = ["resolve","pull"]
override_path = true
EOF