Kubernetes 16

동료가 없어서 GitLab에 GPT 코드리뷰어 봇을 만든 건에 대하여

TL;DR 안녕하세요, "동료가 없어서 GitLab에 GPT 코드리뷰어 봇을 만든 건에 대하여" 시작하겠습니다. 사실 정말로 동료가 없어서 코드리뷰어 봇을 만들어야겠다고 생각한건 아니고, 코드 커밋시에 여러 보안 문제들을 자동으로 체크할 수 있는 도구를 만들어서 GitLab CI/CD에 붙여야겠다는 생각을 했습니다. 이 글은 GitLab v16.9(2024.1.21 현재)를 기준으로 작성되었습니다. LLM API 호출 최근 GPT로 대표되는 LLM들을 이용해서 여러가지 생산성이 있는 일들을 할 수 있게 되었고, 자동화시킨 코드에 대한 "피드백"은 그 중 하나일 것입니다. 어떤 형태로든, 외부 API나 자체 모델이나, GPT 모델을 호출할 수 있는 API를 갖고 있다면 코드리뷰를 해달라는 요청을 보낼 수 ..

DevOps 2024.01.23

FluentBit 만으로 간단하게 Kubernetes에 올라간 서비스 logging 해보기

FluentBit 란? FluentBit (https://docs.fluentbit.io/manual/about/fluentd-and-fluent-bit) 오픈소스 로그 프로세서 도구입니다. 자체 비교표에 의하면, 같은 생태계의 Fluentd와 비교하여 고성능이고 메모리 사용량이 적다는 사실을 알 수 있습니다. Fluentd와 Fluent Bit는 모두 Aggregator나 Forwarder로 독립적으로 사용될 수 있고 상호보완할 수도 있다고 설명하고 있습니다. Log Forwarder : 로컬 이벤트를 수집하기 위해 일반적으로 모든 노드에 설치되며, 이벤트 수신시 Aggregator로 전달 Log Aggregator : Forwarder로부터 지속적으로 이벤트를 수신하는 데몬이며, 이벤트를 버퍼링하고 ..

DevOps 2023.10.21

KServe ML Model monitoring 해보기 : Knative, Loki

이번 주 CloudNeta 스터디 주제는 Monitoring 이라 요즘 생각하고 있는 KServe의 모니터링과 관련된 글을 써보려고 한다. KServe는 ML Serving tool이니까, ML 시스템의 모니터링에 대한 얘기가 되어야 할 것 같다. ML system 에서의 Monitoring ML 시스템에서의 모니터링은 다른 모니터링과 뭐가 다를까에 대해서 참고할 만한 책이 있다. 최근에 읽고 있는 Reliable Machine Learning 이란 책인데, 이 책의 9장은 Monitoring and Observability이다. 거기서 이론적인 부분을 좀 참고해볼 수 있을 것 같아서 일부만 갖고 와봤다. Monitoring과 Observability란 뭘까? Monitoring은 시스템의 성능에 대한 ..

MLOps 2023.04.01

GitOps : Tekton, ArgoCD 로 CI/CD 하기

이전에 작성했던 Tekton 글에 이어 마침 이번 주 CloudNeta 스터디 주제가 GitOps여서 Tekton, ArgoCD 를 결합한 CI/CD, GitOps 구현 예제를 작성해보려고 한다. 간단한 FastAPI 를 배포하는 예제이다. 구조 예제를 위한 평범한 GitOps 구조를 그려봤다. FastAPI app에 추가 변경사항을 반영해서 Repo를 업데이트하고나서 Tekton PipelineRun 으로 Trigger를 한다. 그러면 Tekton Pipeline에 정의된 순서대로 Task 3개가 동작을 시작한다. App repo를 clone 해와서 build 하고 DockerHub에 push한다. 이 과정에서 나온 image tag를 GitOps repo에 업데이트 한다. Slack으로 완료 메시지를..

Kubernetes 2023.03.24

[스터디] Kubernetes Container Networking 정리

PKOS2주차의 주제는 Networking 이다. 그 중에서도 Container networking 에 대해 정리해보려고 한다. Kubernetes networking의 고려사항 이 문서를 보면 어떤 고민들을 갖고 쿠버네티스의 네트워킹 모델이 등장했는지를 알 수 있다. https://kubernetes.io/ko/docs/concepts/cluster-administration/networking/ 💡 쿠버네티스는 애플리케이션 간에 머신을 공유하는 것이 핵심입니다. 일반적으로 머신을 공유하려면 두 애플리케이션이 동일한 포트를 사용하려고 시도하지 않도록 해야 합니다. 여러 개발자가 포트를 조정하는 것은 대규모로 수행하기가 매우 어렵고 사용자가 제어할 수 없는 클러스터 수준의 문제에 노출될 수 있습니다. ..

Kubernetes 2023.03.18

[스터디] PKOS 스터디 1주차 Kops 개념 및 실습

CloudNeta Kubernetes 스터디 시작 3월부터 가시다님의 CloudNeta Kubernetes 스터디에 합류했다. 이에 각 주차별 학습 내용을 정리해야 한다. 1주차의 내용은 KOPS를 사용한 K8S 환경 구축이다. KOPS란 무엇인가? Kubernetes KOPS는 Cloud 환경에서 Kubernetes 클러스터를 쉽게 배포, 관리 및 업그레이드할 수 있는 오픈소스 도구이다. KOPS는 클러스터를 생성, 업데이트 및 삭제하는 프로세스를 자동화한다. AWS, GCP 같은 CSP사의 환경에서 사용할 수 있다는데, Kops 깃허브에 가보면 DigitalOcean, Hetzner, OpenStack은 베타 지원, Azure는 알파 지원 중이라고 한다. KOPS는 클라우드에 Kubernetes 클러..

Study 2023.03.11

Kubernetes cluster에 Locust를 올려서 분산 부하 테스트한 후기

TL; DR helm repo add deliveryhero https://charts.deliveryhero.io/ helm install deliveryhero/locust kubectl create configmap my-loadtest-locustfile --from-file path/to/your/main.py helm install locust deliveryhero/locust \ --set loadtest.name=my-loadtest \ --set loadtest.locust_locustfile_configmap=my-loadtest-locustfile 배경 Locust를 이용한 부하 테스트를 자주해야 하고 그 범위가 다양하다면 worker 수를 scalable 하게 다루고 싶어질 수 있..

Kubernetes 2023.01.08

[스터디] Terraform의 개념부터 간단한 Terraform Registry 사용까지

멋진 CloudNeta 팀의 스터디에 이번에도 합류하게 되었다. 이번 주제는 Terraform 이다. 이번 스터디는 "테라폼 업앤러닝" 이라는 도서를 가지고 진행한다. Terraform 이라는건 IaC(Infra as Code)를 구현하는 도구이다. 왜 IaC인가? IaC, 그러니까 코드형 인프라는 왜 배우고 왜 써야 하는걸까? Infra As Code 라는 것인데, 선언적인 언어를 사용하여 인프라를 코드로 정의한다는 뜻이다. 그럼 운영환경을 완전하게 이식해서 코드로 관리할 수 있는걸까? 실수는 생기지 않을까? 이런 의문이 들법 하지만 일단 책에서 강조하는 IaC의 장점을 보면 아래와 같은 내용을 설명하고 있다. 자급식 배포 : 소수의 관리자가 점유하고 있는 인프라가 아니라 개발자가 필요할 때마다 배포를..

Study 2022.10.30

[북 리뷰] 클라우드 네이티브 애플리케이션 디자인 패턴

클라우드 네이티브 라는 말을 많이 듣기는 했지만 무슨 뜻인지 어렴풋이 짐작만 할 뿐이었는데, 이 책에서 그에 대해 설명을 한다. CNCF에서 내세운 정의를 언급하는데, "퍼블릭이나 프라이빗, 하이브리드, 멀티 클라우드와 같은 환경에서 실행할 수 있는 독립적인 비즈니스 기능 중심의 마이크로서비스들을 느슨하게 결합하여, 크기 조절이 가능하고 탄력적이며 관리와 관찰이 용이한 자동화된 소프트웨어 애플리케이션을 만드는 것" 이라고 설명한다. 와, 저러면 좋겠다 라는 생각이 드는 말이다. 저런게 클라우드 네이티브구나. 직무 특성상 자연스럽게 클라우드 환경에서 쿠버네티스를 다루게 되는 일이 많다. 컨테이너로 격리된 실험 환경, GPU 리소스의 자연스러운 분배, 각기 다른 다양한 모델의 서빙 테스트 들을 수행하기 위해..

Book 2022.07.24

[스터디] DOIK - Kafka & Strimzi Operator 배포 및 테스트

지난 번에 이어 쿠버네티스 데이터베이스 오퍼레이터 스터디에서 진행한 학습의 실습한 내용을 기록한다. 이번 내용은 Strimzi Operator를 통해 Kafka를 쿠버네티스 상에 배포하고 테스트한 내용이다. Strimzi 설명 Stirimzi Operator의 기능 Strimzi는 쿠버네티스 환경에서 Kafka를 운영하기 위해서 만들어진 Operator이다. Operator로서 동작하기 때문에 Kafka의 많은 동작을 쿠버네티스에서 사용할 수 있도록 해준다. 간략하게 카프카 클러스터/구성요소 배포 및 관리, 카프카 접속 설정, 카프카 업그레이드, 브로커 brokers 관리, 토픽 topic 과 유저 user 생성 및 관리를 한다고 할 수 있다. 상세한 목록은 다음과 같다. Manages the Kafka..

Kubernetes 2022.06.25
반응형