반응형

Open Source Software 12

Harbor SSO 구성 가이드(OIDC : Azrue AD, Gitlab)

Overview이번 포스팅에서는 Harbor SSO 구성 방법에 대해서 알아본다.OIDC Auth Mode를 사용할 것이고, Azure AD, Gitlab 구성에 대해서 각각 알아본다.        Azrue AD App 구성 Azure Portal에서 App Registration 생성 Azure Portal → Azure Active Directory → App registrations → New registration 앱 이름 입력 (예: "Harbor SSO") Supported account types: "Accounts in this organizational directory only" Redirect URI: - Platform: Web - URL: ht..

Google Chrome Extension 만들어보기

Overview이번 글에서는 Google Chrome Extension(크롬 확장 프로그램)을 개발하고 실제 Chrome Web Store에 배포하는 전 과정을 다룬다. 크롬 확장 프로그램은 웹 브라우저 기능을 확장하거나 사용자의 편의성을 높이기 위한 도구로, manifest.json 파일을 중심으로 popup, background, content script, 옵션 페이지 등 다양한 구성 요소로 이루어져 있다. 본 글에서는 확장 프로그램의 기본 구조와 핵심 역할을 설명하고, 개발된 확장 기능을 로컬 환경에서 테스트하는 방법과 함께 Chrome Web Store에 등록 및 배포하는 절차까지 실습 기반으로 자세히 소개한다.  또한 실전 예제로 직접 제작한 두 가지 Extension(Dev Toolkit, ..

Vaultwarden(Bitwarden)이란?

Overview오늘은 Vaultwarden에 대해 알아보겠다. Vaultwarden은 Bitwarden 서버의 오픈 소스 대안으로, 가볍고 효율적인 자체 호스팅 비밀번호 관리 솔루션이다. 공식 Bitwarden 서버보다 리소스를 적게 사용하며, 자체 서버에서 안전하게 패스워드를 관리할 수 있도록 설계되었다. 이 글에서는 Vaultwarden의 개념과 주요 기능, Bitwarden과의 차이점, 그리고 Kubernetes 환경에서 Helm을 이용한 Vaultwarden 설치 방법을 살펴보겠다.  주요 내용Vaultwarden 개요 및 특징Bitwarden과의 차이점Helm을 활용한 Vaultwarden 설치 및 구성SMTP 설정을 통한 이메일 알림 기능 추가데이터 백업을 위한 CronJob 설정  Vault..

Harbor란?

OverviewHarbor는 컨테이너 이미지의 보안, 관리, 배포를 강화하는 오픈소스 OCI(OCI-Compliance) 레지스트리 솔루션이다. 기본 Docker Registry의 기능을 확장하여, 대규모 Kubernetes 기반의 멀티 테넌트 환경에서도 안정적인 이미지 관리가 가능하다. Harbor는 RBAC(역할 기반 접근 제어), 취약점 스캐닝(Trivy, Clair), 이미지 복제, Helm 차트 저장소, 정책 기반 이미지 보존, 감사 로그(Auditing), SSO 인증(OIDC, LDAP), Prometheus Exporter를 통한 모니터링 등 다양한 기능을 기본으로 제공한다. 또한, Nginx 기반의 API Gateway, PostgreSQL 데이터베이스, Redis 캐시, Job Serv..

Minio란? (Object Storage)

OverviewMinIO는 고성능, 확장 가능하고 배포가 용이한 분산 객체 스토리지 시스템이다.Amazon S3와 완벽하게 호환되며, 온프레미스, 프라이빗 클라우드 및 하이브리드 환경에서 실행할 수 있는 S3 호환 스토리지 솔루션으로 널리 사용된다.  MinIO의 주요 특징Scalability (확장성) → 여러 노드를 연결하여 페타바이트(PB) 규모 데이터까지 관리 가능High Availability (고가용성) → Erasure Coding 및 Bitrot Protection 지원Performance (성능 최적화) → 고속 데이터 처리 및 대량 트래픽 동시 처리 지원S3 API Compatibility (S3 API 호환성) → Amazon S3용 기존 애플리케이션과 100% 호환Security (..

Habor Robot Account(하버 로봇 계정)란?

OverviewHarbor Robot Account는 이미지 관리, 보안 및 규정 준수 기능을 제공하는 오픈소스 컨테이너 이미지 레지스트리인 하버의 특별한 유형의 계정이다.  로봇 계정은 CI/CD 파이프라인, 스크립트 또는 인간 사용자의 자격 증명을 사용하지 않고 레지스트리와 상호 작용해야 하는 자동화된 작업과 같이 하버 레지스트리와의 자동화 및 프로그래밍적 상호 작용을 위해 특별히 설계되었다.         Habor Robot Account란?일반 사용자처럼 접속하지 못하고, Image에 대한 push & pull 만 가능하다.원하는 아이디를 입력하면, 계정 만료 기간 설정 가능하며 토큰이 생성된다.생성 후 다시 만들기 전까지는 토큰을 알 수 없으므로 파일로 추출하기 기능을 사용하면 좋다.CI/CD..

Cephadm-ansible이란?

Overview이번 글에서는 Cephadm-ansible을 활용하여 Ceph 클러스터를 자동화된 방식으로 설치하고 Kubernetes 환경과 연동하는 전체 과정을 정리하였다.Cephadm은 컨테이너 기반의 Ceph 관리 도구로, cephadm-ansible은 이와 별도로 Ansible을 통해 초기 호스트 설정, 클러스터 관리, Purge 등의 반복 작업을 자동화한다. 설치는 Terraform으로 VM을 프로비저닝하고, Kubespray로 K8s 클러스터를 구성한 뒤, Cephadm 및 Ansible 스크립트를 활용하여 Ceph 클러스터를 부트스트랩하고 OSD 노드, MON/MGR 노드를 설정하였다.  또한 Ceph-CSI 드라이버를 설치하여 Kubernetes에서 Ceph RBD 스토리지를 사용할 수 있..

Rook-Ceph란?

Overview이번 글에서는 Rook-Ceph를 사용하여 Kubernetes 클러스터에서 Ceph 스토리지를 배포 및 운영하는 전체 과정을 다루었다.Rook은 Kubernetes 네이티브 방식으로 Ceph를 관리할 수 있는 오픈소스 오케스트레이션 툴로, 복잡한 분산 스토리지 시스템을 Kubernetes 리소스로 추상화하여 쉽게 설치하고 운영할 수 있도록 도와준다. 이번 구성에서는 Google Cloud VM 환경에서 Kubespray로 Kubernetes 클러스터를 구축한 뒤, Rook Operator 및 Rook-Ceph 클러스터를 Helm Chart 기반으로 설치하였다. Ceph OSD를 위해 별도의 스토리지 노드를 구성하고, Rook의 values.yaml을 적절히 커스터마이징하여 MON/MGR/O..

Redis(Remote Dictionary Server)란?

Overview오늘은 오픈 소스 인메모리 데이터 저장소인 Redis에 대해 학습하였다. Redis는 단순한 Key-Value 저장소를 넘어서 데이터베이스, 캐시, 메시지 브로커, 스트리밍 엔진 등 다양한 역할을 수행할 수 있는 강력한 툴이다.기본적으로 인메모리 기반으로 동작하여 매우 빠른 성능을 제공하며, 문자열뿐 아니라 리스트, 해시, 정렬된 집합, 비트맵, 하이퍼로그, 지리공간 정보, JSON 등 다양한 자료구조를 지원한다. 또한 Redis는 고가용성(HA) 구성, 복제, 클러스터링, 데이터 영속화(RDB & AOF), Pub/Sub, Lua 스크립팅 기능까지 갖추고 있어 실시간 데이터 처리와 마이크로서비스, 게임, 세션 스토어 등 다양한 실무 영역에서 널리 사용된다.  2024년 기준으로 Redis..

Ceph 노드 제거 및 추가 방법(mon/mgr/osd)

Overview오늘은 Ceph 클러스터에서 노드를 제거하고 새 노드를 추가하는 방법에 대해 학습하였다. Ceph는 분산 스토리지 시스템으로, 클러스터 내에 다양한 역할을 가진 노드들이 구성된다. 운영 중 노드를 제거하거나 추가하는 작업은 데이터 무결성과 클러스터 안정성을 위해 매우 신중하게 접근해야 하며, 특히 OSD 제거 시 여유 스토리지 용량 확인, 스크러빙 비활성화, 클러스터 재조정 상태 확인 등의 사전 준비가 필수적이다. 이번 실습에서는 ceph osd, mgr, mon 등을 안전하게 제거하고, 이후 ansible을 이용하여 신규 노드를 클러스터에 구성하는 전체 절차를 수행하였다.  📅 관련 글2022.07.29 - [Open Source Software] - Ceph 란?2024.02.20 -..

반응형