Harbor 2.13과 EKS Hybrid Nodes 통합 가이드
📅 작성일: 2025-08-20 | 수정일: 2026-02-14 | ⏱️ 읽는 시간: 약 3분
개요
이 가이드는 Harbor 2.13과 EKS Hybrid Nodes (Kubernetes 1.33)를 통합하는 단계별 구성 방법을 제공합니다. 2024년 12월 정식 출시된 EKS Hybrid Nodes는 온프레미스 인프라와 AWS EKS를 통합 관리할 수 있게 해주며, Harbor 2.13은 향상된 보안 기능과 AI 모델 관리 기능을 제공합니다.
Part 1: Harbor Private Repository 설치 및 구성
Step 1: Harbor 2.13 설치 준비
시스템 요구사항 확인
- Docker Engine 20.10.10+
- Docker Compose 2.0+
- 최소 하드웨어: 2 CPU cores, 4GB RAM
- 지원 OS: Ubuntu 20.04/22.04, RHEL 8/9, CentOS 7/8
Harbor 2.13.2 다운로드
# Harbor 2.13.2 다운로드 (최신 안정 버전)
wget https://github.com/goharbor/harbor/releases/download/v2.13.2/harbor-offline-installer-v2.13.2.tgz
# 압축 해제
tar xvf harbor-offline-installer-v2.13.2.tgz
cd harbor
Step 2: SSL/TLS 인증서 구성
자체 서명 인증서 생성
# 1. CA 인증서 생성
openssl genrsa -out ca.key 4096
openssl req -x509 -new -nodes -sha512 -days 3650 \
-key ca.key \
-out ca.crt \
-subj "/C=KR/ST=Seoul/L=Seoul/O=MyOrganization/CN=Harbor-CA"
# 2. 서버 인증서 생성
openssl genrsa -out harbor.key 4096
openssl req -new -sha512 \
-key harbor.key \
-out harbor.csr \
-subj "/C=KR/ST=Seoul/L=Seoul/O=MyOrganization/CN=harbor.yourdomain.com"
# 3. v3.ext 파일 생성 (SAN 설정)
cat > v3.ext <<EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor.yourdomain.com
DNS.2=yourdomain.com
IP.1=192.168.1.100
EOF
# 4. 인증서 서명
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.csr \
-out harbor.crt
# 5. 인증서 디렉토리 생성 및 복사
mkdir -p /data/cert
cp harbor.crt /data/cert/
cp harbor.key /data/cert/
Step 3: Harbor 구성 파일 설정
harbor.yml 수정
# harbor.yml 파일 복사 및 편집
cp harbor.yml.tmpl harbor.yml
vi harbor.yml
주요 설정 내용:
# 호스트명 설정
hostname: harbor.yourdomain.com
# HTTPS 구성
https:
port: 443
certificate: /data/cert/harbor.crt
private_key: /data/cert/harbor.key
# Harbor 관리자 비밀번호
harbor_admin_password: Harbor12345!
# 데이터베이스 설정
database:
password: root123
max_idle_conns: 100
max_open_conns: 900
conn_max_lifetime: 5m
conn_max_idle_time: 0
# 데이터 저장 경로
data_volume: /data
# 로그 설정
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
# Trivy 취약점 스캐너 설정
trivy:
ignore_unfixed: false
skip_update: false
offline_scan: false
insecure: false
# 메트릭 설정
metric:
enabled: true
port: 9090
path: /metrics
Step 4: Harbor 설치 실행
# 설치 준비 스크립트 실행
sudo ./prepare
# Harbor 설치 (Trivy 포함)
sudo ./install.sh --with-trivy
# 설치 확인
docker-compose ps
Step 5: Harbor 사용자 인증 구성
LDAP 인증 설정 (선택사항)
# API를 통한 LDAP 구성
curl -X PUT "https://harbor.yourdomain.com/api/v2.0/configurations" \
-H "Content-Type: application/json" \
-u "admin:Harbor12345!" \
-d '{
"auth_mode": "ldap_auth",
"ldap_url": "ldap://ldap.company.com:389",
"ldap_base_dn": "ou=users,dc=company,dc=com",
"ldap_filter": "(objectClass=person)",
"ldap_uid": "uid",
"ldap_scope": 2,
"ldap_search_dn": "cn=admin,dc=company,dc=com",
"ldap_search_password": "admin_password",
"ldap_verify_cert": false
}'
Robot Account 생성 (Kubernetes 연동용)
# Harbor UI에서 생성하거나 API 사용
curl -X POST "https://harbor.yourdomain.com/api/v2.0/robots" \
-H "Content-Type: application/json" \
-u "admin:Harbor12345!" \
-d '{
"name": "k8s-robot",
"duration": 365,
"description": "Robot account for Kubernetes",
"disable": false,
"level": "system",
"permissions": [
{
"namespace": "*",
"kind": "project",
"access": [
{
"resource": "repository",
"action": "pull"
}
]
}
]
}'
Part 2: EKS Hybrid Nodes 구성
Step 6: nodeadm 설치 및 준비
nodeadm 다운로드
# x86_64 아키텍처용
curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/amd64/nodeadm'
# ARM 아키텍처용 (필요시)
# curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/arm64/nodeadm'
# 실행 권한 부여
chmod +x nodeadm
sudo mv nodeadm /usr/local/bin/
# 버전 확인
nodeadm version
필수 구성 요소 설치
# Kubernetes 1.33 지원 컴포넌트 설치
sudo nodeadm install 1.33 --credential-provider ssm
# 또는 IAM Roles Anywhere 사용시
# sudo nodeadm install 1.33 --credential-provider iam-ra