k8s 개발용 도구 - dev space
- advanced/Devops
- 2023. 2. 27.
k8s 개발 도구 도입 배경
k8s를 사용하면서 개발할 때 디버깅이 어려웠습니다.
예를 들어서, 로컬에서 소스코드를 변경하고 그 변경분을 쿠버네티스 클러스터에 반영하려고 할 때, 쉽게 변경하기가 어려웠습니다.
1. 로컬에서 소스코드 업데이트
2. 도커로 이미지 빌드
3. 쿠버네티스에 배포
이런 과정을 거쳐서 업데이트 하려면, 도커 이미지 빌드와 푸쉬하는 것에만 시간이 많이 걸리기 때문에 개발 속도가 매우 느리다고 생각했습니다. 다른 몇 가지 방법들로 그 시간들을 좀 단축시킬 수는 있지만, monolith환경처럼 편하게 개발하기가 매우 어려웠습니다.
skaffold 시도
그러던 중, k8s 개발 도구 중에서 skaffold가 가장 유명하다고 주변에서 들어서
skaffold를 시도해 보려고 했습니다.
위와 같은 실행 흐름을 가지고 개발 및 배포를 하게 되었습니다.
확실히 아무것도 없는 환경에 비하면 훨씬 나아진 것이 맞지만,
skaffold를 잘 익히지 못 한 상황에서 저는 아래의 3가지가 어려웠습니다.
1) FileSync가 자동으로 되지 않음. 그래서 매번 도커 이미지를 빌드 해야 했음.
2) 사용하고 있는 디바이스 맥북 M1이었기 때문에, 로컬에서 amd64 아키텍처 기반의 ubuntu 도커를 빌드하려면 시간이 굉장히 많이 걸렸습니다(대략 10분)
3) 설정할 것이 많고, 설정을 잘 못 하는 경우에 오동작이 많음
사람들이 많이 사용하는 데에는 이유가 있을 거라고 생각이 되었지만, 혼자 하는 프로젝트에서는 적합하지 않다고 생각했습니다.
그래서 devspace를 고려하게 되었습니다.
devspace 도입
k8s 개발 환경 도구 중에서는 몇 가지 유명한 것이 skaffold / tilt / devspace / telepresense 등이 있습니다.
그 중에서 시도해본 것은 telepresense와 devspace가 있었는데, telepresense는 skaffold와 달리 쉽게 설정되었습니다.
그리고 https://d2.naver.com/helloworld/7861046 네이버에서도 관련 자료를 찾을 수 있었습니다.
telepresense를 사용하는 것도 나쁘지 않아보였습니다.
devspace는 정말로 명령어 몇 번으로 세팅이 다 되었고, 자잘한 버그 같은 것을 한 번도 마주치지 않았습니다.
그래서 당분간 개발 환경은 devspace로 사용할 예정입니다.
마치며
몇 가지 k8s 개발 환경 도구 중에서 devspace를 선택한 것은 잔 버그가 하나도 없었고, 개인 프로젝트를 위해서 사용할 도구이기 때문에 그 정도로도 충분할 것 같다는 생각이었습니다. 개인 프로젝트 용도였기 때문에 다른 도구들도 깊이 사용해 보지 않은 것이 사실입니다.
k8s를 이용해서 무언가를 개발할 때 필요한 것들이 너무 많다는 생각도 좀 드네요.
'advanced > Devops' 카테고리의 다른 글
[개인 클러스터 구축] LoadBalancer를 Vultr IP에 연결 (0) | 2023.01.24 |
---|---|
[개인 클러스터 구축] vultr kubernetes (0) | 2023.01.24 |
[kubernetes] CKA & CKAD 공부내용 정리 (0) | 2022.11.24 |
[kubernetes] worker node의 ip가 바뀐 경우 해결 방법 (0) | 2022.09.20 |
[kubeadm & helm] CNI(calico) & jenkins 설치 (0) | 2022.09.20 |