현재 kubernetes 자동화 설치 툴을 개발 중입니다.
해당 글은 사용자 환경마다 상이할 수 있습니다.
관리자 권한을 기준으로 작성하였습니다.
harbor 이중화는 할 수 없나요?(해줘)
/etc/docker/certs.d/<ip>/<crt file>
harbor.yml 작성 후 설치
- 필요 없는 부분은 삭제함.
- 주석 부분 외 전부 기본값으로 사용함.(사용자에 따라 변경)
hostname: <domain or ip> # 도메인 주소 or ip 주소
http:
port: <port number> # 사용할 포트
# domain으로 이중화를 구성할 때는 https는 사용하지 않는다.
# 트래픽이 외부 도메인이랑 연결해주는 nginx랑 충돌이 생겨서 그런 것 같은데 port 변경해서 하는 것은 검증안됨
https:
port: <port number> # 사용할 포트
certificate: <crt file path> # crt 파일 경로
private_key: <key file path> # key 파일 경로
harbor_admin_password: <password> # harbor pw
# domain으로 이중화 할 경우 주석 해제
# external_url: https://<domain>
database:
password: root123
max_idle_conns: 100
max_open_conns: 900
data_volume: /data
trivy:
ignore_unfixed: false
skip_update: false
offline_scan: false
security_check: vuln
insecure: false
jobservice:
max_job_workers: 10
notification:
webhook_job_max_retry: 10
chart:
absolute_url: disabled
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
_version: 2.6.0
proxy:
http_proxy:
https_proxy:
no_proxy:
components:
- core
- jobservice
- trivy
upload_purging:
enabled: true
age: 168h
interval: 24h
dryrun: false
cache:
enabled: false
expire_hours: 24
hostname: <domain> # 도메인 주소
http:
port: <port number> # 사용할 포트
harbor_admin_password: <password> # harbor pw
external_url: https://<domain>
database:
password: root123
max_idle_conns: 100
max_open_conns: 900
data_volume: /data
trivy:
ignore_unfixed: false
skip_update: false
offline_scan: false
security_check: vuln
insecure: false
jobservice:
max_job_workers: 10
notification:
webhook_job_max_retry: 10
chart:
absolute_url: disabled
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
_version: 2.6.0
proxy:
http_proxy:
https_proxy:
no_proxy:
components:
- core
- jobservice
- trivy
upload_purging:
enabled: true
age: 168h
interval: 24h
dryrun: false
cache:
enabled: false
expire_hours: 24
server {
listen 80; # port number
server_name <domain>; # 도메인
return 301 https://<domain>$request_uri; # 도메인
}
upstream harbor_http {
least_conn;
zone zone_harbor_http_upstream 128k;
server <ip>:<http port> max_fails=10 fail_timeout=1s; # harbor <ip>:<http port>
server <ip>:<http port> max_fails=10 fail_timeout=1s backup; # harbor <ip>:<http port>
}
server {
listen 443 ssl;
listen 4443 ssl;
server_name <domain>; # 도메인
default_type application/octet-stream;
# 각각의 SSL 설정 및 proxy 설정은 사용자 별로 맞춰서 설정한다.
# SSL
ssl_certificate /etc/nginx/ssl/tls.crt;
ssl_certificate_key /etc/nginx/ssl/tls.key;
# ssl_protocols TLSv1.1 TLSv1.2;
# ssl_ciphers '!aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES:';
# ssl_prefer_server_ciphers on;
# ssl_session_cache shared:SSL:10m;
# chunked_transfer_encoding on;
client_max_body_size 0;
# proxy_send_timeout 120;
# proxy_read_timeout 300;
# proxy_buffering off;
# proxy_http_version 1.1;
# keepalive_timeout 5 5;
# tcp_nodelay on;
# access_log /var/log/nginx/harbor-access.log main;
# access_log /var/log/nginx/harbor-access.json_log json;
# error_log /var/log/nginx/harbor-error.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Ssl on;
proxy_redirect off;
proxy_pass http://harbor_http;
#health_check fails=3 port=8082;
}
}