본문 바로가기

전체 글110

쿠버네티스 개념 및 용어 정리 쿠버네티스를 이해하기 위해 클러스터, 노드 수준의 큰 그림부터 시작해서 pod, service, ingress 등의 개념까지 짧게 정리했다. 돌아가는 수준으로 이해하기는 쉽지만 역시 잘 쓰기 위해서는 알야할 개념들이 훠어어얼씬 많다. 마스터 / 노드 쿠버네티스의 각종 개념들은 결국 노드에서 실행되는데 역할에 따라 마스터와 노드로 나뉜다. 마스터 (control plane) 쿠버네티스 클러스터를 관리해서 요구조건에 맞는 상태가 유지되도록 한다. kube-apiserver 마스터의 프론트엔드로 모든 요청을 받아 해석하고 아래 컴포넌트들과 유기적으로 동작한다. 예를 들어 pod 생성 요청이 온 경우 요청 문법을 검사한다. etcd에서 노드 상태를 가져다가 scheduler에게 어떤 노드에 띄울지 물어본다. 어.. 2022. 2. 20.
django 커스텀 유저 모델 처음 django 프로젝트를 설정하면 기본으로 설정되어있는 user 모델이 있다. 그래서 따로 user 모델을 추가하지 않더라도 python manage.py createsuperuser로 user 생성은 가능하다. 이렇듯 장고에는 숨겨진 기능들이 많은데, 사실 한눈에 잘 보이지 않을 뿐 없는 건 아니다. 가장 기본적인 사용자 모델을 코드 수준에서 눈으로 확인하고, AbstractUser, AbstractBaseUser을 사용해서 custom user model을 만드는 과정을 정리해본다. 지금 설정된 유저 모델은 무엇인가? settings 파일 어디에도 그런 변수는 없을 수 있다. 그러면 global settings에 그 값이 있을 것이다. global settings는 pip로 설치한 django 패.. 2022. 2. 1.
Google Kubernetes Engine(GKE) 오토스케일 Google Kubernetes Engine(GKE)은 kubernetes를 관리형으로 제공하는 gcp 서비스이다. 더 정확히는 master node에 대한 완전 관리와 worker node 기능 일부를 책임진다. 쿠버네티스를 GKE로 운영하는 데 그 이점 중 오토스케일 관련된 부분도 상당하다. 부하에 따라 병렬적으로 스케일링은 물론이고, 리소스를 수직적으로 확장할 수도 있다. 각 컴포넌트에 맞는 적절한 오토스케일 전략이 필요하므로, 아래 지원되는 기능을 잘 활용하면 서비스를 안정적으로 돌릴 수 있다. pod 단위 Horizontal Pod Autoscaler(HPA) pod에 부하가 늘어남에 따라 임계치와 비교해서 pod의 개수를 조절한다. kubectl autoscale deployment 를 사용하.. 2022. 1. 23.