IP로 설치된 Private-Registry(harbor) 도메인 수동 적용

가정

  • Private Registry, Control plane, Worker nodes는 Ubuntu20.04 환경에서 구성됩니다.

  • 쿠버네티스 버전은 v1.26 입니다.

  • 이미지 레지스트리 주소를 192.168.77.154 에서 regi.acornsoft.io 로 변경합니다.

IP
도메인

192.168.77.154

regi.acornsoft.io

Private Registry 작업

Private Registry IP 변경 및 디렉토리 생성

  • openssl.conf 파일에 도메인을 추가합니다.

$ sudo vi /var/lib/cubectl/cert/openssl.conf
# 예시
[ alt_names_registry ]
DNS.1 = localhost
DNS.2 = registry
DNS.3 = regi.acornsoft.io
IP.1 = 127.0.0.1
IP.2 = 192.168.77.154
  • 도메인 디렉토리를 생성합니다.

Private Registry 설정 파일 변경

  • harbor.yml의 hostname을 IP에서 도메인으로 변경합니다.

변경사항 반영

  • install.sh 스크립트를 실행하여 변경 사항을 적용합니다.

  • install.sh 스크립트를 실행하는 대신 harbor 환경변수를 수정하고 harbor를 재시작해도 변경사항이 반영됩니다.

Node 작업

공통 작업(Control plane, Worker nodes)

Private Registry IP 변경사항을 node에 반영

  • /etc/containerd/certs.d에 도메인 디렉토리를 생성한 후, /etc/containerd/certs.d/192.168.77.154/hosts.toml 파일을 복사합니다.

  • /etc/containerd/certs.d/regi.acornsoft.io/hosts.toml의 IP를 도메인으로 변경합니다.

  • /etc/containerd/config.toml의 IP를 도메인으로 변경합니다.

  • containerd를 재시작합니다.

  • IP 인증서는 더이상 사용하지 않으므로 hosts.toml 파일에서 ca라인을 삭제합니다.

  • Addon, Coredns, Static Pods 및 기타 yaml파일에 대한 IP 주소를 도메인으로 변경합니다.

  • 패키지 저장소 주소를 도메인으로 변경합니다.

  • /etc/docker/certs.d/ 에 도메인 디렉토리를 생성합니다.

Control-plane 추가 작업

  • control-plane 에서는 calico와 metrics server를 업데이트하는 작업을 추가로 해줍니다.

  • kube-proxy daemonset 이미지 주소를 도메인으로 변경합니다.

  • coredns deployment 이미지 주소를 도메인으로 변경합니다.

  • kubelet을 재시작해줍니다.

확인

  • 컨테이너 이미지를 확인합니다. 이미지가 모두 올라오기까지 몇 분 소요될 수 있습니다.


참고: Private Registry IP를 새로운 서버의 IP로 변경하는 경우에는 cubectl update 명령서를 사용하십시오.

Last updated