본문 바로가기

전체 글40

python-alpine을 사용을 지양해야 하는 이유 Docker 이미지의 기본 이미지를 선택할 때 Alpine linux를 권장하는데 go 언어를 사용하는 경우에는 이미지도 작아지고 빌드 속도도 빨라집니다. 하지만 python을 사용하는 경우에는 빌드 속도도 더 느리고 이미지도 더 크게 만들고 런타임 버그도 발생할 가능성이 있습니다. 그 이유에 대해 알아보도록 하겠습니다. Alpine을 Docker 이미지로 추천하는 이유 Alpine 리눅스는 일단 다른 OS 이미지보다 훨씬 이미지 크기가 작습니다. gcc를 설치한다고 하면, ubuntu 이미지에 설치하는 것 보다 alpine 이미지에 설치할 때 빌드 속도도 빠르고 훨씬 크기가 작은 이미지가 생성됩니다. Python을 alpine이미지로 만드는 경우 glibc(GNU C Library) : GNU 프로젝트.. 2023. 1. 5.
로드밸런서의 부하 분산 종류 및 헬스체크 로드밸런서는 트래픽을 받아서 여러 대의 서버에 분산시키는 하드웨어 또는 소프트웨어 입니다. L4(TCP, UDP 있는 레이어)부터 port를 다룰 수 있기 대문에 L4, L7 Load Balancer가 많이 사용됩니다. L4 Load balancer와 L7 Load balancer의 차이점은 무엇일까요? L4 Load balancer는 IP와 Port를 기준으로 스케줄링 알고리즘을 통해 부하를 분산합니다. 요청하는 서비스의 종류와 상관없이 최적의 서버로 요청을 전송하여 부하를 분산하게 됩니다. L7 Load balancer는 IP, port 외에도 URI, Payload, HTTP Header, Cookie 등의 내용을 기준으로 부하를 분산합니다. 즉, 서비스의 종류에 따라 부하를 분산하는 것입니다. 그.. 2022. 12. 23.
docker pull image 관련 개인적으로 잘못 알고 있던 부분이 있어 정리합니다. docker pull k8s.gcr.io/nginx:latest 위와 같은 구문이 있다고 했을 때.. 저의 경우에는 기본적으로 hub.docker.com에서 이미지를 땡겨오기 때문에 각 package 이름 앞에 붙는 저 k8s.gcr.io는 그냥 구분짓기용 네이밍인걸로 알았습니다. 그으런데.. k8s.gcr.io라고 붙이거나 혹은 registry.k8s.io/nginx:latest 라는 이미지를 땡겨온다면.. 각각 k8s.gcr.io docker registry나 registry.k8s.io라는 docker registry에서 이미지를 땡겨오는 거라고 합니다. (찾아보니.. k8s.gcr.io 에서 registry.k8s.io로 리다이렉트되는 구조라고 .. 2022. 12. 14.
Flask를 이용한 API server 구축 (2) - Flask 설치 및 사용 Flask 설치 및 사용 먼저 Flask는 Python 기반이기 때문에 Python을 먼저 설치합니다. 저는 Python 3.6.9을 사용했어요. flask 설치를 합니다. pip3 install flask flask 설치 후 간단하게 웹서버 실행이 가능합니다. 간단하게 하나 만들어 봤습니다. from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' @app.route('/hello') def helloo_world(): return 'Helloooooo, World!' if __name__ == "__main__": app.run(host='0.0.0.0',port=8080).. 2022. 11. 28.