반응형

MLOps 12

쿠버네티스 Multi Control-plane

오랜만에 쿠버네티스 글입니다.그동안 데이터 서버를 운용하면서 서버가 이런 저런 이유로 펑펑 터져나가고 틈틈히 복구를 진행 했었는데요.여러개의 서버가 터져나갈 동안 다행이도 Control-plane 노드만큼은 무사해서 어렵지 않게 복구할 수 있었습니다. 그러나 Control-plane 노드가 터지면 어떻게 복구해야 할지 가늠 조차 되지 않아서 Contol-plane을 여러개 두고자 설정을 진행했습니다.현재 제가 사용중인 쿠버네티스는 위와 같이 7개의 서버로 구성되어 있으며, 이 중 하나를 Control-plane으로 사용중 입니다. 이렇게 현재 사용중인 노드들 중 일부를 control plane으로 ROLES를 변경하는 것을 진행해 보겠습니다. 0. 사전 지식일반적으로 Kubernetes에서 Control..

MLOps/Kubernetes 2024.11.18

MinIO 서버 자동 재시작 및 S3 Browser를 이용한 파일 전송

오늘은 MinIO 서버를 Cronjob을 이용하여 재시작 하는 내용과 S3 Browser를 이용한 파일 다운로드/업로드 하는 작업에 대해 다뤄보고자 합니다. 왜 이 주제를 다루게 되었는지는 본문에서 설명하도록 하겠습니다.MinIO 서버 재시작  앞서서 여러 부하테스트(벤치마크, 실사용 테스트 등)을 진행하니 메모리 점유율이 2~3GB 단위를 넘어가는 상황이 발생했습니다. 늘어난 메모리는 다시 줄어들지 않았는데, 앞서 말씀드렸다시피 K8S 클러스터들은 MinIO 서비스 뿐만 아니라 다른 일들(대부분 ML)도 처리를 해야 하는데요, 이러한 상황에서 메모리를 많이 점유하고 있기엔 부담스러웠습니다. ( 최소 32GB의 메모리를 요구하는걸 보면 못해도 절반은 사용할 것으로 예상했습니다. )  따라서 사람들이 자주..

MLOps/MinIO 2024.08.06

MinIO Client with Python

지금까지 진행한 MinIO 설치과정은 모두 Python에서 사용하기 위해서 였습니다.Python에서 업로드와 다운로드를 수행하는 코드를 마지막으로 마무리하고자 합니다.warp을 이용한 부하테스트(벤치마크)가 아니라 실제 파일을 가지고 업로드 테스트를 했을때는 속도가 생각만큼 나오진 않았다. *이전 업로드 테스트에서 학습데이터 낱개파일을 모두 올리는건 시간이 너무 오래 걸려 압축 파일로 관리하기로 약속했다.현재 서버 구성은 500Mbps로 추정되는 3대 서버와 2대의 100Mbps 서버로 구성되어 있다. 이전글에서 언급했듯, 물리적 거리 또한 떨어져 있는데, 이번에는 NginX에서 리버스 프록시를 2대의 서버를 제외하고 로드밸런싱 하도록 수정하고 동일 테스트를 수행했다. minio.conf: | u..

MLOps/MinIO 2024.07.17

MinIO 부하 테스트 with NginX

2024.07.09 - [MLOps/MinIO] - MinIO MNMD on Kubernetes with Prometheus MinIO MNMD on Kubernetes with Prometheus이번에는 Distributed Mode MinIO(MNMD)를 구성한 방법에 대해 작성하고자 합니다.기존에는 3개 서버 정도에 5개의 디스크를 사용하려 했으나, 계획을 변경하여 여러 서버들을 모아 7개 서버에 10개의 디ainotes.tistory.com이 글에서 부하 분산에 걱정을 남기며 마무리 했었습니다.임의로 부하를 테스트할 수 있는 방법을 찾아보니, MinIO에서 warp라는 테스트 도구를 제공하고 있어, 이 도구를 사용하여 부하 테스트를 진행했습니다.Warp 설치MinIO 부하 테스트를 위한 warp ..

MLOps/MinIO 2024.07.16

MinIO MNMD on Kubernetes with Prometheus

이번에는 Distributed Mode MinIO(MNMD)를 구성한 방법에 대해 작성하고자 합니다.기존에는 3개 서버 정도에 5개의 디스크를 사용하려 했으나, 계획을 변경하여 여러 서버들을 모아 7개 서버에 10개의 디스크를 확보하고, 최종적으로 5개 노드에 10개의 디스크(1.65T씩 사용)를 띄우는 것으로 완료했습니다.규모가 커지게된 배경에는 이전 SNSD에서는 1 SSD / 1 HDD 였기때문에 HDD에 들어있는 데이터를 가져오게되면 시간이 오래 걸렸지만(최대 4 Mb/s), 여러개의 HDD를 붙인다면 데이터를 분산해서 가져오기 때문에 HDD의 한계를 어느정도 극복할 수 있을 것이라 생각했습니다. ( 실제로 최소 7~8 Mb/s는 확보하게 되었습니다. )디스크 드라이브 세팅7개의 서버는 1개 디스..

MLOps/MinIO 2024.07.09

Minio SNSD on Kubernetes (2/2)

2024.07.04 - [MLOps/MinIO] - Minio SNSD on Kubernetes (1/2) Minio SNSD on Kubernetes (1/2)2024.07.01 - [MLOps/Kubernetes] - 쿠버네티스 실행 쿠버네티스 실행2024.06.17 - [MLOps/Kubernetes] - 쿠버네티스 개요 및 설치 쿠버네티스 개요 및 설치MinIO 서버를 구성하면서 최소 3개의 서버를 사용하게 될ainotes.tistory.com이전 글에 이어, File Server는 Web UI에서 사용하는 것을 가정했기 때문에 속도(10Mb/s 이상)가 중요했습니다. 이번에는 SNSD 설치 과정에서 겪은 시행착오에 대해 작성하고 SNSD(File Server)는 마무리 하도록 하겠습니다. 데이터..

MLOps/MinIO 2024.07.08

Kubernetes Dashboard(Grafana / Prometheus)

이번 글에서는 helm을 이용한 grafana와 prometheus의 설치 과정에 대해 설명할 예정입니다.prometheus는 minio의 console monitoring 탭에서 Info외에 Usage / Traffic / Resources의 정보를 보는 것에도 관여합니다.Kubernetes에서 minio를 설치하고 사용하는데 속도가 느린 원인을 파악하기 위해 설치했습니다.helm 설치 grafana와 prometheus는 helm을 사용하면 설치가 매우 쉬우므로, helm을 이용하여 설치하기 위해 helm을 먼저 설치한다.curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3chmod 70..

MLOps/Kubernetes 2024.07.05

Minio SNSD on Kubernetes (1/2)

2024.07.01 - [MLOps/Kubernetes] - 쿠버네티스 실행 쿠버네티스 실행2024.06.17 - [MLOps/Kubernetes] - 쿠버네티스 개요 및 설치 쿠버네티스 개요 및 설치MinIO 서버를 구성하면서 최소 3개의 서버를 사용하게 될 예정인데, 향후 확장 및 관리의 편리성을 위해 쿠버네티스를ainotes.tistory.com 쿠버네티스 실행에 이어, 이번에는 쿠버네티스 위에 SNSD (앞서 말한 File Server) 를 올렸던 작업에 대해 설명하려고 합니다. 이전글에서는 MNMD를 구현한다고 했으나, 속도 이슈가 있어서 SNSD 두 개를 구현하는 것으로 마무리 했습니다. 자세한 내용은 차근차근 풀어가도록 하겠습니다.용어 정리File Server : 문서 / 비교적 가벼운 단일..

MLOps/MinIO 2024.07.04

쿠버네티스 실행

2024.06.17 - [MLOps/Kubernetes] - 쿠버네티스 개요 및 설치 쿠버네티스 개요 및 설치MinIO 서버를 구성하면서 최소 3개의 서버를 사용하게 될 예정인데, 향후 확장 및 관리의 편리성을 위해 쿠버네티스를 도입해보고자 합니다.쿠버네티스란?쿠버네티스는 컨테이너화된 워크로드와ainotes.tistory.com글에 이어, 이번에는 실행 방법에 대해 알아보겠습니다.쿠버네티스 1.23 이후 부터는 Container Runtime으로 Docker가 아닌 Containerd만 지원한다.Containerd 설치 후 아래 설정을 반드시 해야 한다. 물론 설정하지 않아도 잘 되는 서버도 있지만...- 설정하지 않으면 어느순간 kubectl이 제대로 작동하지 않거나(ip:6443 refuse erro..

MLOps/Kubernetes 2024.07.01

쿠버네티스 개요 및 설치

MinIO 서버를 구성하면서 최소 3개의 서버를 사용하게 될 예정인데, 향후 확장 및 관리의 편리성을 위해 쿠버네티스를 도입해보고자 합니다.쿠버네티스란?쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이다.쿠버네티스란 명칭은 키잡이(helmsman)나 파일럿을 뜻하는 그리스어에서 유래했다. K8s라는 표기는 "K"와 "s"와 그 사이에 있는 8글자를 나타내는 약식 표기이다. 구글이 2014년에 쿠버네티스 프로젝트를 오픈소스화했다. 컨테이너는 애플리케이션을 포장하고 실행하는 좋은 방법이다. 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너를 관리하고 가동 중지 시간이 없는지 확인해야 한다. 예를 들어 컨테이너가 다운되면 다른 컨테이너를 다시 시작해야 한..

MLOps/Kubernetes 2024.06.17
반응형