본문 바로가기
반응형

1. 설치조건 확인

Hardware

Resource Minimum Recommended

CPU 2 CPU 4 CPU
Mem 4 GB 8 GB
Disk 40 GB 160 GB

Software

The following table lists the software versions that must be installed on the target host.

Software Version Description

Docker engine Version 17.06.0-ce+ or higher For installation instructions, see https://docs.docker.com/engine/installation/
Docker Compose Version 1.18.0 or higher For installation instructions, see https://docs.docker.com/compose/install/
Openssl Latest is preferred Used to generate certificate and keys for Harbor

2. 설치 프로그램 다운로

https://github.com/goharbor/harbor/releases

harbor 릴리즈 페이지 방문하여 다운로드

여기선 online installer 로 다운로드 하였음

 

운로드 이후 public key 검증

gpg --keyserver hkps://keyserver.ubuntu.com --receive-keys 644FF454C0B4115C
gpg -v --keyserver hkps://keyserver.ubuntu.com --verify harbor-online-installer-v2.10.2.tgz.asc

아래와 비슷한 내용이 뜨면 됨

gpg: armor header: Version: GnuPG v1
gpg: assuming signed data in 'harbor-offline-installer-v1.10.0-rc2.tgz'
gpg: Signature made Fri, Dec  6, 2019  5:04:17 AM WEST
gpg: using RSA key 644FF454C0B4115C
gpg: using pgp trust model
gpg: Good signature from "Harbor-sign (The key for signing Harbor build) <jiangd@vmware.com> [unknown]

이후 tgz 파일 추출

$ tar xzvf harbor-online-installer-version.tgz

3. 설치 프로그램 전 harbor 인증서 작성 (HTTPS)

인증기관 인증서 생성

  1. CA 인증서 개인키 생성
openssl genrsa -out ca.key 4096
  1. CA 인증서 생성
openssl req -x509 -new -nodes -sha512 -days 3650 \\
 -subj "/C=KR/ST=Seoul/L=yeoui/O=example/OU=Personal/CN=192.168.133.11" \\
 -key ca.key \\
 -out ca.crt

CN = yourdomain

서버 인증서 생성

  1. 개인키 생성
openssl genrsa -out 192.168.133.11.key 4096

key 이름은 yourdomain.com.key 로

  1. CSR 생성
 openssl req -sha512 -new \\
 -subj "/C=KR/ST=Seoul/L=yeoui/O=example/OU=Personal/CN=192.168.133.11" \\
    -key 192.168.133.11.key \\
    -out 192.168.133.11.csr
  1. x509 v3 확장 파일 생성
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
IP.1=192.168.133.11
IP.2=127.0.0.1
DNS.1=192.168.133.11
EOF

alt_names 항목은 환경에 맞게 넣어야함.

  1. v3 파일 사용하여 인증서 생성
openssl x509 -req -sha512 -days 3650 \\
    -extfile v3.ext \\
    -CA ca.crt -CAkey ca.key -CAcreateserial \\
    -in 192.168.133.11.csr \\
    -out 192.168.133.11.crt

Harbor, Docker 인증서 맞추기

  1. Harbor 인증서 폴더에 복사
cp 192.168.133.11.crt /data/cert/
cp 192.168.133.11.key /data/cert/
  • 디렉토리가 없으면 생성
  1. Docker 에서 이용할 수 있도록 crt → cert 변경
openssl x509 -inform PEM -in 192.168.133.11.crt -out 192.168.133.11.cert
  1. Docker 인증서 폴더에 복사
cp 192.168.133.11cert /etc/docker/certs.d/192.168.133.11/
cp 192.168.133.11.key /etc/docker/certs.d/192.168.133.11/
cp ca.crt /etc/docker/certs.d/192.168.133.11/
  • 디렉토리가 없으면 생성
  1. Docker 엔진 재 시작
systemctl restart docker
  • sudo 권한으로 실행

 

 

4. Harbor YAML 파일 구성

  1. 바꿔야 할 항목은 hostname, https.certificate, https.private_key 는 위에 인증서 설정을 했기때문에 꼭 바꿔야 하고 나머지는 선택

 

certificate : 위 3번에서 생성한 서버 crt 인증서 경로 입력

private_key : 위 3번에서 생성한 서버 key 경로 입력

선택적으로 바꿀 내용들

  1. http.port , https:port >> 포트를 변경하고 싶을 경우
  2. password >> harbor admin 패스워드 변경. (DB 패스워드도 있으니 잘 확인)

이외에는 웬만하면 안만지는게 좋아보임

https://goharbor.io/docs/1.10/install-config/configure-yml-file/

참고

5. 설치 스크립트 실행

설치 디렉토리에있는 쉘 실행

sudo ./install.sh

(반드시 sudo 권한으로 실행)

모든 컨테이너가 뜨면 접속해서 확인

 

6. Docker 로 설치한 Harbor 에 로그인

docker login ${Harbor-address}

이 경우는 docker login 192.168.133.11

이후 admin/password 계정 입력

계정을 잘 모르겠다면 위 YAML 파일확인 하면 admin/비밀번호 확인 가능

  • 만약 docker login 이 안될 경우 인증서 문제일 경우가 매우 높음

OS 수준 인증서도 등록해야 함

Ubuntu 의 경우
cp 192.168.133.11.crt /usr/local/share/ca-certificates/192.168.133.11.crt 
update-ca-certificates

Cent OS 의 경우
cp 192.168.133.11.crt /etc/pki/ca-trust/source/anchors/192.168.133.11.crt
update-ca-trust

(안된다면 systmectl restart docker 한번 더)

Harbor 재시작 방법

  • 종료 (docker-compose.yml 이 있는 하버 디렉토리에서)
docker-compose down -v
  • 기동
docker-compose up -d
728x90
반응형

'IT 공부 > PaaS' 카테고리의 다른 글

K8S 에서 containerd 와 docker  (0) 2024.05.29
[Harbor] 이미지 Push 및 Kubernetes 에서 사용방법  (0) 2024.04.13
[K8S] MetalLB 설치  (0) 2024.02.20
[K8S] 9. AutoScaling & Scheduler  (0) 2024.01.22
[K8S] 8. Statefulset  (0) 2024.01.20

한걸음 한걸음

개인적인 기록