소개
- 보안이 중요한 정부 시설.
- 엄격한 네트워크 격리가 필요한 금융 기관.
- 규정 준수 요구 사항이 있는 의료 기관.
- 산업 제어 시스템(ICS) 환경.
- 기밀 네트워크를 사용하는 연구 시설.
사전 요구 사항
버전 요구사항
SSL/TLS 요구 사항
하드웨어 요구 사항
MySQL 데이터베이스
Redis
- Amazon ElastiCache
- Google Cloud Memorystore
- Azure Cache for Redis
- 클라우드 또는 온프레미스 인프라에서 자체 호스팅되는 Redis
객체 저장소
- Amazon S3: 확장성, 데이터 가용성, 보안, 성능을 제공하는 오브젝트 저장소 서비스입니다.
- Google Cloud Storage: 대규모 비정형 데이터를 저장하기 위한 관리형 서비스입니다.
- Azure Blob Storage: 대규모 비정형 데이터를 위한 클라우드 기반 오브젝트 저장소입니다.
- CoreWeave AI Object Storage: AI 워크로드에 최적화된 S3 호환 오브젝트 저장소입니다.
- MinIO Enterprise (AIStor), NetApp StorageGRID 또는 기타 엔터프라이즈 솔루션과 같은 엔터프라이즈 S3 호환 저장소.
MinIO Open Source는 유지 관리 모드 상태이며, 활발한 개발이 이루어지지 않고 사전 컴파일된 바이너리도 제공되지 않습니다. 프로덕션 배포의 경우, W&B는 관리형 오브젝트 저장소 서비스 또는 MinIO Enterprise (AIStor)와 같은 엔터프라이즈 S3 호환 솔루션을 권장합니다.
에어갭 환경별 요구 사항
- 내부 컨테이너 레지스트리: 필요한 모든 W&B 이미지가 포함된 Harbor, JFrog Artifactory 또는 Nexus와 같은 프라이빗 컨테이너 레지스트리에 대한 액세스.
- 내부 Helm 저장소: W&B Helm 차트가 있는 프라이빗 Helm 차트 저장소에 대한 액세스.
- 이미지 전송 기능: 인터넷에 연결된 시스템에서 에어갭 레지스트리로 컨테이너 이미지를 전송할 수 있는 방법.
- 라이선스 파일: 유효한 W&B 엔터프라이즈 라이선스. 라이선스를 획득하려면(예: 인터넷에 연결된 시스템에서) Requirements 페이지의 License 섹션을 참조하거나 W&B account team에 문의하세요.
에어갭 환경 준비
Step 1: 내부 컨테이너 레지스트리 설정
W&B Operator의 요구 사항을 추적하고 컨테이너 레지스트리를 최신 이미지로 정기적으로 유지 관리하는 것은 사용자의 책임입니다. 필요한 컨테이너 이미지와 버전의 최신 목록은 Helm 차트를 참고하거나 W&B 지원팀 또는 배정된 W&B 지원 엔지니어에게 문의하세요.
핵심 W&B 구성 요소 컨테이너
docker.io/wandb/controller: W&B Kubernetes Operator.docker.io/wandb/local: W&B 애플리케이션 서버.docker.io/wandb/console: W&B 관리 콘솔.docker.io/wandb/megabinary: W&B 마이크로서비스(API, executor, glue, parquet).
종속성 컨테이너
docker.io/bitnamilegacy/redis: 테스트 및 개발 중 로컬 Redis 배포에 필요합니다. 프로덕션 Redis 요구 사항은 사전 요구 사항의 Redis 섹션을 참조하세요.docker.io/otel/opentelemetry-collector-contrib: 메트릭과 로그를 수집하는 OpenTelemetry 에이전트.quay.io/prometheus/prometheus: 메트릭 수집용 Prometheus.quay.io/prometheus-operator/prometheus-config-reloader: Prometheus 종속성.
전체 이미지 목록 조회
-
인터넷에 연결된 시스템에서 W&B Helm charts 저장소로부터 W&B Helm 차트를 다운로드합니다.
-
values.yaml파일을 확인해 모든 컨테이너 이미지와 해당 버전을 파악합니다.또는 다음 명령을 사용해 저장소 이름만 추출할 수 있습니다(버전 태그 제외).저장소 목록은 다음과 비슷하게 표시됩니다.각 이미지의 정확한 버전 태그를 조회하려면 앞서 나온 첫 번째 명령(grep -E "repository:|tag:")을 사용하세요. 그러면 저장소 이름과 해당 버전 태그가 함께 표시됩니다.
이미지를 에어갭 레지스트리로 전송
-
인터넷에 연결된 시스템에서 필요한 모든 이미지를 pull한 후 저장하세요.
셸 변수를 사용해 버전을 일관되게 관리하세요:다음 예시의 버전 번호는 앞 단계에서 Helm 차트를 검사해 확인한 실제 버전으로 바꾸세요. 여기에 표시된 버전은 예시일 뿐이며, 시간이 지나면 오래될 수 있습니다.
-
USB 드라이브나 보안 파일 전송 등 승인된 방법을 사용해
.tar파일을 에어갭 환경으로 옮기세요. -
에어갭 환경에서 이미지를 로드한 다음 내부 레지스트리로 push하세요:
Step 2: 내부 Helm 차트 저장소 설정
-
인터넷에 연결된 시스템에서 chart를 다운로드합니다:
-
.tgzchart 파일을 에어갭 환경으로 전송한 다음, 저장소 절차에 따라 내부 Helm 저장소에 업로드합니다.operatorchart는 W&B Kubernetes Operator(Controller Manager)를 배포합니다.operator-wandbchart는 Custom Resource(CR)에 설정된 값을 사용해 W&B Platform을 배포합니다.
step 3: Helm 저장소 접근 설정
-
에어갭 환경에서 Helm이 내부 저장소를 사용하도록 설정합니다:
-
차트를 사용할 수 있는지 확인합니다:
에어갭 환경에서 W&B 배포
Step 4: Kubernetes Operator 설치
-
다음 내용으로
values.yaml파일을 생성합니다:저장소와 태그는 Step 1에서 내부 레지스트리로 전송한 실제 버전으로 바꾸세요. 여기 표시된 버전(1.13.3)은 예시이며, 시간이 지나면 더 이상 최신 버전이 아닐 수 있습니다. -
Operator와 Custom Resource Definition(CRD)을 설치합니다:
-
Operator가 실행 중인지 확인합니다:
Operator 파드가
Running상태로 표시되어야 합니다.
Step 5: MySQL 데이터베이스 설정
[PASSWORD]는 안전한 비밀번호로 바꾸세요:
6단계: W&B Custom Resource 설정
다음 예시 설정에는 시간이 지나면 더 이상 최신이 아닐 수 있는 이미지 버전 태그가 포함되어 있습니다. 모든
tag: 값을 1단계에서 내부 레지스트리로 전송한 실제 버전으로 바꾸세요.wandb.yaml 파일을 만드세요:
호스트 이름, 비밀번호, 태그와 같은 모든 플레이스홀더 값은 실제 설정 값으로 바꾸세요. 앞의 예시는 가장 일반적으로 사용되는 컴포넌트를 보여줍니다.
settingsMigrationJobweave-tracefilestreamflat-runs-table
7단계: W&B Platform 배포
wandb.yaml의 설정과 이미지 참조를 사용해 operator-wandb chart에 정의된 W&B Platform 컴포넌트를 설치합니다.
-
플랫폼을 배포하려면 W&B Custom Resource를 적용하세요:
-
배포 진행 상황을 모니터링하세요:
operator가 필요한 모든 컴포넌트를 생성하므로 배포에 몇 분 정도 걸릴 수 있습니다.
OpenShift 설정
OpenShift 보안 컨텍스트 제약 조건
restricted SCC를 할당하므로, 루트로 실행할 수 없으며 특정 사용자 ID가 필요합니다.
옵션 1: restricted SCC 사용(권장)
옵션 2: 맞춤형 SCC 만들기(필요한 경우)
restricted SCC에서 제공하지 않는 기능이 필요하면 맞춤형 SCC를 만드세요:
-
SCC를 적용합니다:
-
W&B 서비스 계정에 SCC를 바인딩합니다:
OpenShift Routes
OpenShift 이미지 풀 설정
-
이미지 풀 시크릿을 생성합니다:
-
Custom Resource에서 시크릿을 레퍼런스합니다:
OpenShift 전체 예시
이 예시의 모든
tag: 값은 1단계에서 내부 레지스트리로 전송한 실제 버전으로 바꾸세요. 여기에 표시된 버전은 예시이며 시간이 지나면 오래될 수 있습니다.보안 요구 사항에 맞는 포괄적인 OpenShift 설정 예시가 필요하시면 W&B 지원팀 또는 배정된 W&B 지원 엔지니어에게 문의하세요.
설치를 확인하세요
wandb verify 명령어는 컴포넌트와 설정이 예상대로 작동하는지 확인하는 테스트를 실행합니다.
이 절차에서는 첫 번째 관리자 사용자 계정을 브라우저에서 생성한다고 가정합니다.
-
W&B CLI를 설치합니다:
-
W&B에 로그인합니다:
예를 들어:
-
설치를 확인하세요:
추가 에어갭 검증
-
이미지 pull: 모든 파드가 내부 레지스트리에서 이미지를 성공적으로 pull했는지 확인합니다:
모든 이미지는 내부 레지스트리를 가리켜야 하며, 모든 파드는
Running상태여야 합니다. -
외부 연결: W&B가 외부 연결을 시도하지 않는지 확인합니다(에어갭 모드에서는 외부 연결을 시도하면 안 됩니다):
- 라이선스 검증: W&B 콘솔에 접속해 라이선스가 활성 상태인지 확인합니다.
문제 해결
이미지 pull 오류
- 내부 레지스트리에 이미지가 있는지 확인하세요.
- 이미지 풀 시크릿이 올바르게 설정되었는지 확인하세요.
- Kubernetes 노드에서 레지스트리까지의 네트워크 연결을 확인하세요.
- 레지스트리 인증 자격 증명을 확인하세요.
OpenShift SCC 오류
Helm chart를 찾을 수 없음
- Custom Resource의 chart 저장소 URL을 확인합니다.
- Operator 파드가 내부 Helm 저장소에 접속할 수 있는지 확인합니다.
-
저장소에 chart가 있는지 확인합니다:
자주 묻는 질문
다른 인그레스 클래스를 사용할 수 있나요?
여러 인증서가 포함된 인증서 번들은 어떻게 처리하나요?
customCACerts 섹션에서 여러 항목으로 나누세요:
자동 업데이트를 방지하려면 어떻게 해야 하나요?
- Operator 설치에서
airgapped: true를 설정합니다(이렇게 하면 자동 업데이트 확인이 비활성화됩니다). - Custom Resource에서
spec.chart.version을 수동으로 업데이트해 버전 업데이트를 제어합니다. - 필요한 경우 W&B System Console에서 자동 업데이트를 비활성화합니다.
W&B는 Self-Managed 인스턴스를 사용하는 고객에게 지원을 유지하고 최신 특성, 성능 개선, 수정 사항을 받기 위해 최소 분기마다 한 번 이상 배포를 최신 릴리스로 업데이트할 것을 강력히 권장합니다. W&B는 메이저 릴리스를 최초 릴리스 날짜로부터 12개월 동안 지원합니다. 자세한 내용은 릴리스 정책 및 프로세스를 참고하세요.
배포는 공개 리포지토리에 연결하지 않아도 작동하나요?
airgapped: true를 지정하면 Kubernetes Operator는 내부 리소스만 사용하고 공개 리포지토리에 연결을 시도하지 않습니다.
에어갭 환경에서 W&B를 어떻게 업데이트하나요?
- 인터넷에 연결된 시스템에서 새 컨테이너 이미지를 가져옵니다.
- 이미지를 에어갭 레지스트리로 전송합니다.
- 새 Helm chart를 내부 저장소에 업로드합니다.
-
Custom Resource에서
spec.chart.version및 이미지 태그를 업데이트합니다. - 업데이트된 Custom Resource를 적용합니다. Operator가 W&B 컴포넌트에 대해 롤링 업데이트를 수행합니다.
다음 단계
- 사용자 인증 구성: SSO 또는 기타 인증 방법을 설정합니다.
- 모니터링 설정: W&B 인스턴스와 인프라에 대한 모니터링을 구성합니다.
- 업데이트 계획 수립: Server upgrade process를 검토하고 업데이트 주기를 수립합니다.
- 백업 구성: MySQL 데이터베이스용 백업 절차를 수립합니다.
- 프로세스 문서화: 특정 에어갭 업데이트 절차를 위한 운영 절차서를 작성합니다.
도움 받기
- 인프라 관련 지침은 레퍼런스 아키텍처를 검토하세요
- 설정 관련 세부 사항은 Operator guide에서 확인하세요
- W&B 지원팀 또는 배정된 W&B 지원 엔지니어에게 문의하세요
- OpenShift 관련 문제는 Red Hat OpenShift 문서를 참조하세요