안녕하세요 Hardy 입니다. 이번 포스팅에서는 제가 싱가폴에서 겪은 색다른 경험에 대해 공유해보려고 합니다. 바로 싱가폴에서 진행한 k8s meetup 에 참여한 경험입니다. Meetup 이야기 전, 독자분들의 원활한 글 이해를 위해 k8s 에 대해 간략한 설명으로 포스팅을 시작해보겠습니다.
K8S 란?
K8s, or Kubernetes, is an open-source container orchestration platform used for automating the deployment, scaling, and management of containerized applications. It was developed by Google and is now maintained by the Cloud Native Computing Foundation (CNCF).
Kubernetes provides a set of abstractions that allow developers and system administrators to easily deploy, manage, and scale containerized applications across clusters of machines. It provides features such as automated rollouts and rollbacks, self-healing, service discovery and load balancing, and storage orchestration, among others.
By using Kubernetes, teams can focus on developing and deploying their applications without worrying about the underlying infrastructure. Kubernetes provides a flexible and extensible platform that can be run on-premises or in the cloud, and it has become one of the most popular tools for managing containerized workloads in production environments. From chatGPT
설명에서 말한것과 같이 k8s 는 시스템을 다루기 위한 management 도구라고 보실 수 있습니다. 그렇다면, 저는 왜 k8s meetup 에 참여하게 된걸까요?
Hardy가 k8s 에 관심을 가지게 된 이유.
최근 k8s에 대한 관심이 커지고 있는데요. 목적에 따라 각기 다양한 이유들이 있을거라 생각되네요. 저는 그 중 MLops with graph machine learning 으로부터 k8s에 대해 관심을 가지게 되었습니다. 구체적으로는 한 포스팅이 발단이 되었는데요. 바로 Spotify Engineering 팀에서 발행한 포스팅이였습니다. PyG conference 발표부터 시작된 호기심이 Spotify engineering architecture 까지 이어진거죠. 그래프 추천 모델을 현업에서 직접 적용한 좋은 사례라 생각되어 주기적으로 동향을 체크하고 있던 중 포스팅을 발견하게 된거죠.
포스팅에서는 ray 와 k8s 를 적용하여 머신러닝 엔지니어 , 데이터 사이언티스트 (ML practioners) 들이 겪고 있는 문제인 ML ecosystem 관리를 편리하게 할 수 있다 라는 점을 시작으로, 왜 ML practioners 들에게 이 관리가 중요한지 그리고 spotify 에서는 그 관리를 어떻게 하고 있는지 아키텍쳐 설명과 코드까지 잘 풀어놓았습니다. ray 라는 툴이 언급되는데요. 간단히 말씀드리면, 저희가 모델을 학습시키기 위한 일련의 과정을 편리하게 자동화하며 관리할 수 있는 도구 라고 보시면 되겠습니다.
ray를 통해 발생한 하나하나 각각의 ecosystem 을 k8s로 관리하는 내용이 담긴 이 포스팅을 보고 저는 k8s에 대해 알게 되었고, 마침 싱가폴 여행 스케쥴과 겹쳐 주저할 틈없이 meetup 에 신청했습니다.
Meetup 에선 무엇을 배웠나요?
밋업은 약 3시간동안 5가지 세션으로 구성되었으며, 다음 순서대로 진행되었습니다.
- Welcome / Introductions by the Organizers, @K8SUG / K8SDM
- Docker 101 Hands-on by Sachin Choube Solution Architect @DSA
- GKE Cluster Hands-on by Yongkang HE, Organizer @K8SDM.com
- GKE Backup Hands-on by Yongkang HE, Organizer @K8SUG.com
- Open Mic, Photo Time, Networking, Q & A - all
- Docker101 Hands-on session 에서는 도커 컨테이너를 관리하는 법에 대해 배웠습니다. 이미지를 불러와서 빌드하고, 빌드된 컨테이너에서 무엇이 발생하는지 로그를 찍어보는 등에 대한 설명으로 진행되었습니다.
- GKE Cluster Hands-on session 에서는 GCP 에서 GKE cluster 를 만들고 deploy 그리고 delete 까지 하는 법에 대해 배웠습니다. 원래 이 모든 과정들을 손수 CLI에서 기입하며 진행해야하는게 맞지만, 시간여건상 발표자분께서 준비해 온 쉘스크립트를 실행하는 것으로 대체했습니다.
- GKE Backup Hands-on session 에서는 생성된 GKE cluster를 주기적으로 관리해야할텐데, 필요한 요소들이 무엇이며 어떤식으로 관리하는게 효율적인지에 대해 배웠습니다. 이때, CloudCasa라는 플랫폼을 통해 CLI 가 아닌 GUI 를 통해 간단하게 어떻게 policy build 등 planning 을 할지에 대해 간단하게 체험해보았습니다. 저는 이 때 처음 알게되었는데, 이 부분에서 대다수 k8s 를 활용하시는 분들께서 어려움을 겪고 계신다고 하시더라구요. 그 어려운 과정을 저같은 초보자도 GUI를 통해 쉽게 해결할 수 있게 잘 만든 툴이였었기에 비슷한 문제로 고민하시는 분들이 계신다면 CloudCasa를 활용해보시는것을 추천드립니다.
- Open Mic , Networking session에서는 밋업 현장 / 온라인 참여한 사람들을 대상으로 자신이 누구이며, 무엇에 관심있는지 등 자기소개를 하는 시간이였습니다. 저포함 3명정도가 앞에 나가서 자신에 대해 어필하였는데요.
마치며
정리해보면, 하나의 노드에 속한 도커 컨테이너를 관리하는 미시적인 관점부터 클러스터를 만들고 그 클러스터를 다루는 방식인 거시적인 관점까지 all-in-one 으로 다뤄보게되어 너무 좋았던 경험이였습니다. 비록 디테일한 내용은 시간 여건상 발표자분께서 미리 준비해온 쉘스크립트로 대신하는 등 생략되어 아쉬웠지만, k8s 가 어떤식으로 활용되며 내부에 어떤 요소들이 존재하는지에 대한 전반적인 아키텍쳐를 알게된 좋은 배움의 기회였었다고 생각됩니다.
기술관점와는 별개로 또 다른 배움과 자극이 있었습니다. 국적 가릴 거 없이 어딜가나 정보 교류 선순환을 위해 열심히 활동하는 분들이 존재하는구나 라는 깨달음을 얻게되는 시간이였습니다. 이타적인 삶에 대해 글또 첫 글에서 이야기 했었는데요. 말은 거창하게 했지만, 남을 위해 만드는 콘텐츠들이 어느순간 나를 위해 만드는 콘텐츠로 변질되려고 하는 순간들이 종종 존재하더라구요. 그 순간마다 콘텐츠를 만드는 목적에 대해 다시 되새기며 힘을 내곤하는데, 이 밋업 참여경험이 이타적인 삶에 대해 앞으로 많은 동기부여가 될 수 있을거 같네요.
혹시 이 글을 보시는 분들중 그래프 지식 교류에 대해 관심 있으신 분들이 계시다면 아래 그래프 유저 그룹 사이트에 접속하셔서 좋은 얻음이 있었으면 합니다. 아직 초기단계라 콘텐츠가 많이 미비하긴하지만, 점차 발전하는 모습으로 여러분들에게 도움드릴 수 있는 공간이 되게끔 노력하도록 하겠습니다. 뿐만아니라, 콘텐츠 제작에 관심있으신분들은 언제든지 말씀해주시면 감사하겠습니다.
레퍼런스