쿠버네티스에 Harbor 설치하기
목차
요구사항
- 최소사양: 2 CPU/4GB 메모리/40GB 디스크
- 권장사양: 4 CPU/8GB 메모리/160GB 디스크
- 도커, 도커-컴포즈, (option)OpenSSL
- (또는) 쿠버네티스 클러스터
하버 설치
이 글은 쿠버네티스
에서 헬름 을 사용한
하버 배포와 문제 해결을 주로 다룹니다.
바로가기
아래는 도커 컴포즈를 사용한 하버 설치 방법을 간단히 기술했습니다. 읽어 보시면 하버 구조파악에 도움이 될 것입니다!
간단히가 아니라 대충이겠지!
하버 인스톨러 다운로드
- 하버 릴리즈 페이지 에서 오프라인/온라인 인스톨러를 받습니다.
# 21.07.21 최신 버전 기준
$ wget https://github.com/goharbor/harbor/releases/download/v2.3.0/harbor-offline-installer-v2.3.0.tgz
- (선택) 검증하기
정상적인 설치 파일인지 검증해볼 수 있습니다.
# *.asc 파일을 위해 퍼블릭 키를 얻습니다
$ gpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 644FF454C0B4115C
gpg: /home/cwadmin/.gnupg/trustdb.gpg: trustdb created
gpg: key 644FF454C0B4115C: public key "Harbor-sign (The key for signing Harbor build) <jiangd@vmware.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
public key "Harbor-sign (The key for signing Harbor build) <jiangd@vmware.com>" imported
를 확인해야 합니다.
# *.asc를 이용해 검증합니다
# 온라인 인스톨러
$ gpg -v --keyserver hkps://keyserver.ubuntu.com --verify harbor-online-installer-version.tgz.asc
# 오프라인 인스톨러
$ gpg -v --keyserver hkps://keyserver.ubuntu.com --verify harbor-offline-installer-version.tgz.asc
gpg: assuming signed data in 'harbor-offline-installer-v2.2.3.tgz'
gpg: Signature made 2021년 07월 05일 (월)
gpg: using RSA key 7722D168DAEC457806C96FF9644FF454C0B4115C
gpg: using pgp trust model
gpg: Good signature from "Harbor-sign (The key for signing Harbor build) <jiangd@vmware.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 7722 D168 DAEC 4578 06C9 6FF9 644F F454 C0B4 115C
gpg: binary signature, digest algorithm SHA512, key algorithm rsa4096
Good signature from "Harbor-sign (The key for signing Harbor build) <jiangd@vmware.com>" [unknown]
를 확인해야 합니다.
- tar 풀기
$ tar xzvf harbor-[online/offline]-installer-[version].tgz
이 글 에서 tar 파일을 자세히 다루고 있습니다.
SSL
안타깝지만 일정에 치여서 다루지 않겠습니다.
간단히 설명 드리자면 https를 위한 SSL/TLS 인증서를 발급받는 절차입니다.
외부 도메인이 있다면 Let's Encript
에서 무료로 인증서를 발급받을 수 있습니다.
내부적으로 사용한다면 OpenSSL 을 사용하여 인증서를 생성합니다.
[공식]Configure HTTPS Access to Harbor
TLS 설정
내부 TLS 설정을 다룹니다.
[공식]Configure Internal TLS
YML 설정
하버를 커스터마이징 할 수 있는 harbor.yml 파일의 설정을 다룹니다.
[공식]Configure the Harbor YML File
인스톨러 스크립트 실행
하버는 다음 설정으로 설치할 수 있습니다.
- 하버만
- Notary 와 하버
- Trivy 와 하버
- (helm)ChartMuseum 와 하버
- 위의 세개 중 두개나 전부 설치하기
Notary: 서버와 클라이언트 사이에 삼자로 신뢰할 수 있는 통신을 만들어 줍니다(CNCF)
Trivy: 이미지의 취약점을 찾습니다
각각의 설정은 다음 플래그를 이용합니다.
Notary: --with-notaryTrivy: --with-trivyChartMuseum: --with-chartmuseum
쉘 스크립트를 실행할 때 여러 권한이 필요합니다. sudo로 권한을 부여해 줍시다.
$ sudo ./install.sh [flags]
CLI
Harbor API v2.0을 사용하는 간단한 CLI 명령어를 테스트 할 수 있습니다.
# 이미지 목록 확인
$ curl -X GET http://[$id:$passwd@]${endpoint}:5000/v2/_catalog
$ curl -u "$id:$pw"
{"repositories":["ubuntu"]}
$ curl -X GET http://[$id:$passwd@]${endpoint}:5000/v2/${repository}/tags/list
{"name":"ubuntu","tags":["18.04"]}
축하드립니다!🎉 설치에 성공하셨군요!
헬름차트로 배포
요구사항
- 쿠버네티스 1.10+
- 헬름 2.8.0+
- 쿠버네티스 활용 지식
- PostgreSQL 능력자
- Redis 능력자
- PVC와 외부 오브젝트 스토리지 능력자
사실 지식은 필요 없어도 됩니다
헬름차트가 없다면 이 글 을 보고 설치할 수 있습니다.
차트 다운받기
$ helm repo add harbor https://helm.goharbor.io
"harbor" has been added to your repositories
$ helm fetch harbor/harbor --untar
⚠주의 helm repo는 계정마다 관리됩니다. sudo를 사용해 fetch 할 때 주의하세요
