본문 바로가기
카테고리 없음

[Harbor - 3.5단계] 온프레미스 도메인·인증서·IP 구성 - Harbor Native Replication 학습 시리즈

by METAVERSE STORY 2026. 8. 4.
반응형

 

 

📘 Harbor Native Replication 3.5단계

온프레미스에서 도메인·인증서·IP는 어떻게 구성할까?

Harbor를 온프레미스 Kubernetes에 구축할 때 많이 헷갈리는 부분이 있습니다.

  • Harbor 도메인은 어디에 등록할까?
  • HTTPS 인증서는 어디에 적용할까?
  • Worker Node가 바뀌면 IP도 계속 바뀌지 않을까?

결론부터 말하면 Harbor를 특정 Worker Node IP에 직접 연결하지 않고, 고정된 VIP 또는 LoadBalancer IP를 앞단에 두는 방식이 일반적입니다.


🌐 1. Harbor 도메인은 어디에 등록할까?

사내에서만 사용하는 Harbor라면 보통 사내 DNS에 등록합니다.

예를 들어:

harbor-prod.company.com → 10.10.10.100
harbor-dr.company.com   → 10.20.10.100

여기서 10.10.10.100은 Worker Node IP가 아니라 Harbor 서비스용 고정 VIP입니다.

전체 흐름은 다음과 같습니다.

harbor-prod.company.com
        ↓
      사내 DNS
        ↓
  VIP 10.10.10.100
        ↓
 LoadBalancer
        ↓
     Ingress
        ↓
      Harbor

개발자나 Kubernetes에서는 항상:

docker login harbor-prod.company.com

처럼 도메인만 사용하면 됩니다.


🔐 2. HTTPS 인증서는 어디에 등록할까?

Harbor는 운영환경에서 HTTPS 사용을 권장합니다.

https://harbor-prod.company.com

따라서 인증서에도 해당 도메인이 포함되어 있어야 합니다.

SAN
harbor-prod.company.com

인증서를 적용하는 위치는 크게 두 가지입니다.

방법 ① Kubernetes Ingress에 적용

Client
   ↓ HTTPS
Ingress
   ↓
Harbor

Kubernetes TLS Secret으로 인증서를 등록합니다.

kubectl create secret tls harbor-tls \
  --cert=harbor.crt \
  --key=harbor.key \
  -n harbor

방법 ② 외부 LoadBalancer에 적용

회사에서 F5, A10, HAProxy 같은 장비를 사용한다면:

Client
   ↓ HTTPS
F5 / LoadBalancer
   ↓
Ingress
   ↓
Harbor

LoadBalancer에서 TLS를 종료할 수도 있습니다.

운영환경에서는 가능하면 회사 내부 CA에서 발급한 인증서를 사용하는 것이 관리하기 편합니다.


🚪 3. NodePort IP는 고정 IP가 아니다

NodePort에는 별도의 IP가 있는 것이 아닙니다.

예를 들어 Worker Node가:

Node01  10.10.1.11
Node02  10.10.1.12
Node03  10.10.1.13

이고 NodePort가 30443이라면:

10.10.1.11:30443
10.10.1.12:30443
10.10.1.13:30443

처럼 접근할 수 있습니다.

즉:

NodePort = Node IP + 고정 Port

입니다.


⚠️ Worker Node IP를 DNS에 직접 연결하면?

예를 들어:

harbor-prod.company.com
        ↓
10.10.1.11
        ↓
Worker01

로 구성했다가 Worker01이 장애 나면 Harbor 접속도 문제가 생길 수 있습니다.

그래서 앞에 VIP 또는 LoadBalancer를 둡니다.

harbor-prod.company.com
        ↓
VIP 10.10.10.100
        ↓
LoadBalancer
   ┌────┼────┐
   ↓    ↓    ↓
Node1 Node2 Node3
        ↓
      Harbor

Worker Node가 변경되더라도 사용자는 계속:

https://harbor-prod.company.com

만 사용하면 됩니다.


🏢 4. 온프레미스에서는 VIP를 어떻게 만들까?

대표적으로 세 가지 방법이 있습니다.

F5 같은 기존 LoadBalancer

VIP
 ↓
F5
 ↓
K8s NodePort
 ↓
Ingress
 ↓
Harbor

대규모 기업 환경에서 많이 볼 수 있는 구조입니다.

MetalLB

Bare Metal Kubernetes에서 LoadBalancer 타입 Service를 사용할 수 있도록 IP를 제공하는 방식입니다.

MetalLB
  ↓
10.10.10.100
  ↓
Ingress
  ↓
Harbor

HAProxy + Keepalived

직접 LoadBalancer HA 구성을 만들 수도 있습니다.

HAProxy01 ─┐
           ├─ VIP
HAProxy02 ─┘
             ↓
           K8s

🔄 5. Harbor Replication에서는 Egress IP도 중요하다

여기서 한 가지 더 구분해야 합니다.

Ingress

외부에서 Harbor로 들어오는 트래픽입니다.

Client
  ↓
Harbor VIP
  ↓
Harbor

Egress

Harbor가 다른 Harbor로 나가는 트래픽입니다.

예를 들어 PROD → DR Push Replication이라면:

Harbor PROD
     ↓
JobService
     ↓
Worker Node / NAT
     ↓
Firewall
     ↓
Harbor DR

문제는 JobService Pod가 다른 Worker로 이동하면 방화벽에서 보이는 Source IP가 달라질 수도 있다는 것입니다.


⭐ 6. Replication Egress IP도 고정하면 좋다

가능하면 다음과 같이 구성합니다.

Harbor JobService
       ↓
어느 Worker Node에서 실행되든
       ↓
고정 Egress NAT IP
10.10.10.200
       ↓
Firewall
       ↓ TCP 443
Harbor DR

그러면 방화벽에는:

Source
10.10.10.200

Destination
Harbor DR VIP

Port
TCP 443

만 허용하면 되어 관리가 훨씬 편해집니다.


🏗️ 최종 권장 구조

온프레미스 Harbor를 이해할 때 아래 그림을 기억하면 쉽습니다.

              사내 DNS

    harbor-prod.company.com
              │
              ↓
       VIP 10.10.10.100
              │
        LoadBalancer
              │
           Ingress
        [TLS 인증서]
              │
              ↓
          Harbor PROD
         ┌────┴─────┐
         ↓          ↓
     Registry   JobService
                    │
                    ↓
             Egress NAT IP
              10.10.10.200
                    │
                 Firewall
                    │ TCP 443
                    ↓
             Harbor DR VIP
                    │
                    ↓
               Harbor DR

✅ 핵심만 정리

항목권장 구성

Harbor 도메인 사내 DNS 등록
Harbor IP 고정 VIP / LoadBalancer IP
인증서 Ingress 또는 외부 LB
Worker Node IP Harbor 도메인에 직접 연결하지 않음
NodePort Node IP + Port
Replication Egress 가능하면 고정 NAT/Egress IP
PROD → DR 통신 보통 HTTPS TCP 443

🎯 한 문장으로 정리

Harbor 운영환경에서는 DNS → 고정 VIP → LoadBalancer/Ingress → Harbor 구조를 만들고, Replication의 외부 통신 역시 가능하면 고정 Egress IP를 사용하면 Worker Node가 변경되어도 안정적으로 운영할 수 있습니다.

 

반응형

댓글