전체 글
-
Continuous Machine Learning 환경을 위한 Lab 환경 구축하기IT 2021. 9. 27. 20:39
Machine Learning 모델을 개발하다보면 개발 완료된 모델에 대한 지속적인 통합, 지속적인 배포 및 지속적인 학습을 고려해서 개발이 필요하며 처음에 시간이 좀 더 걸리더라도 이러한 MLOps 또는 GitOps 환경을 구축해두면 모델을 개발 및 유지보수 하는데 시간을 많이 절약할 수 있으며 이러한 시간 절감으로 인하여 같은 시간에 더욱 더 많은 모델을 개발 가능하게 된다. 이번 글에서는 Continouse Machine Learning 환경을 구축하기 위한 Lab 환경을 구축하여 간단한 모델을 개발해보고 MLOps와 GitOps를 이용한 지속적인 통합, 배포 및 학습 환경을 구현해보도록 한다. 전체적인 시스템 아키텍쳐는 아래 이미지와 같으며 시스템은 보안을 고려하여 최소한의 외부 접속을 고려하여 ..
-
Airflow Multi-tenant GuideIT 2021. 9. 21. 20:00
Airflow Multi-tenant? airflow는 Web Server, Scheduler 그리고 Worker로 구성되어 있으며 기본적으로 제공하는 권한은 Admin, Op, User, Viewer, Public로 5가지이다. Airflow에 접속하여 Dag를 실행하는 그룹이 하나밖에 없다면 크게 상관이 없지만 사용자 또는 그룹이 대규모라면 그룹 권한 정책을 적용하지 않으면 개발보다는 운영에 많은 시간을 소비하게 된다. 경험상 이러한 루틴의 반복은 개발과 운영의 라이프 사이클을 떨어뜨리는 요소로 작용하고 시스템 업그레이드와 패치에 상당한 준비시간이 필요하게하고 결국에는 업그레이드와 패치가 불가능하게되어 시스템 운영에 초점을 맞추어 개발과 운영이 진행되게 된다. 이글에서는 Airflow login wi..
-
Airflow authentication with RBAC and KeycloakIT 2021. 9. 20. 19:47
Apache Airflow? Data 분석 업무 진행시 가장 중요한 업무는 데이터를 정확한 시간에 정확하게 처리하여 정확한 곳에 저장하는 일이 가장 중요하다. 이는 데이터 사이즈와 업무 복잡도에 따라 구현 난이도가 달라지게 되며 개발 완료된 파이프 라인에 대한 운영 또한 상당한 리소스가 필요하다. 레거시한 방식으로는 데이터 전처리 프로그램을 작성 후 스케줄러에 등록하여 실행하는 방법이 대부분이었으나 최근에는 오픈소스 ETL 툴을 사용하여 이러한 작업을 많이 자동화 하는 추세이다. 데이터 분류에 따라 오픈소스 ETL Tool도 약간씩 달라지며 Airflow는 Data Science 관련 업무에서 많이 사용하는 툴이다. Airflow 자체가 워낙 잘 만들어진 툴이고 제공되는 기능도 다양하여 사용하는데 큰 문..
-
Kubernetes SSO with OIDC and KeycloakIT 2021. 8. 20. 15:16
Kubernetes Cluster의 사이즈가 일정 수준 이상을 넘어서면 여러명의 개발자와 운영자가 같은 Cluster에 접근하게 된다. 여러명의 개발자/관리자 접근이 필요한 Cluster를 안전하게 운영하기 위해서는 복잡한 ACL 설정과 로깅은 필수이며 이는 운영에 많은 노력을 필요로하게 된다. 레거시 시스템에서는 이러한 문제를 해결하기 위해서 LDAP을 연동하여 문제를 해결해 왔다. 하지만 LDAP은 인증시마다 매번 아이디와 패스워드 입력이 필요하며 그룹을 이용한 정책을 기본으로 하기 때문에 최신 OIDC에서 제공하는 RBAC(Role Base Access Control)은 사용이 불가능하다. 이 글에서는 Keycloak의 OIDC 기능을 이용하여 Kubernetes에 접근하는 개발자 또는 운영자에게 ..
-
ROOT CA 생성 및 Self Signed Certificate 만들기IT 2021. 8. 15. 17:23
최근 대부분의 서비스들은 Web으로 제공되고 있으며 브라우저에서 http로 제공되는 웹페이지는 신뢰할 수 없는 사이트로 워닝을 표시하고 https로의 전환을 유도하고 있다. 서버에서 인터넷 접속이 원활하다면 큰 어려움없이 공인 인증서를 발급받아 사용하면 되지만 그렇지 않은 환경에서는 Self Signed Certificate를 생성하고 배포하는게 일반적일것이다. 여기에서는 Self Signed Certificate를 생성하는 방법을 정리하고자 한다. 1년에 한번은 꼭 하게되는 작업이고 전체 배경만 알면 그리 어려움 없이 할 수 있는 작업이라 절차 중심으로 정리하였다. Prerequisite - CentOS 8 - Openssl ROOT CA 인증서 생성 CA Private Key 생성 ca가 사용할 RS..
-
storage class in Kubernetes backed by Synology NFSIT 2021. 8. 14. 16:37
기존에 Kubernetes Persistant Storage로 Ceph를 사용하였다. 하지만 Homelab 환경이 Synology + Workstation으로 구성되어 있고 Ceph이 실행되고 있는 스토리지가 Synology이므로 이는 필연적으로 오버헤드가 발생 할 수 밖에 없다. 그리고 테스트를 하다보면 K8S를 새로 배포하는 일이 빈번한데 이때마다 Ceph를 계속 배포하는건 매우 번거로운 작업이므로 Layer를 하나 제거하여 좀 더 편리한 Homelab 환경을 구축해보고자 한다. Synology NAS 환경 설정 Synology에서 NAS 설정을 해주어야 한다. NAS 설정 작업은 구글 검색을 해보면 매우 많은 내용들이 있으므로 여기에서 따로 정리하지 않도록 하겠다. 세부적인 설정 방법은 Refere..
-
PostgreSQL 13 Streaming Replication InstallationIT 2021. 6. 1. 21:24
PostgreSQL 13 Streaming Replication with PGPool 4.2 최근 많이 사용되는 PostgreSQL Database의 Streaming Replication 구성 방법에 대해서 정리해보았다. 9버전에서 도입된 Streaming Replication 구성 방법이 13에서는 조금 달리 설정되어야 하지만 구글에서 검색되는 자료의 대부분이 9버전 기준으로 정리된게 많았고 잘못된 구성은 나중에 어떤 문제가 생길지 모르기 때문에 13 버전에 최적화된 설정을 찾기 위해 읽어보았던 내용을 중심으로 정리하였다. 모든 구성은 PostgreSQL 13과 Pgpool-II 4.2에서 테스트되었다. prerequisite Proxmox Ansible Virtual Machine X 3ea Pos..
-
Fedora CoreOS PXE Boot 가이드IT 2021. 1. 30. 16:37
배경 기존에 많이 사용하던 CentOS는 Stream으로 변경되어 믿고 사용하기는 조금 부담스럽고 Ubuntu로 변경해서 사용해도 되지만 리눅스라는 측면에서 보면 크게 벗어나지 않지만 자동화 측면에서 보면 네트워크 설정, DNS 설정 등등 다른 항목들이 많고 아직은 Redhat 계열보다 조금 무겁게 느껴저서 이것 또한 약간 떠려지는게 사실이다. 그래서 이럴거면 트렌드가 Kubernetes로 많이 옮겨가고 있고 이제 OS는 Container를 띄우기 위한 최소한으로 많이 사용되는 개념이라 Stream이지만 Fedora CoreOS를 사용하기로 하였다. 또한 CoreOS가 Redhat으로 인수되면서 Redhat 계열 리눅스와 호환되는게 많아 접근도 그리 어렵지는 않았다. 이번 글은 지극히 개인적으로 나중에 ..