Kubernetes Architecture: Control Plane 과 Worker Node 이해하기
·
DevOps&Cloud
Kubernetes Architecture 쿠버네티스 아키텍처는 컨테이너화된 워크로드를 안정적이고 적응 가능한 환경을 제공하기 위해, 여러 서버와 클러스터에 분산된 컴포넌트들이 함께 동작하는 집합이다. 그리고 이러한 도커 오케스트레이션을 위해서는 크게 Control Plane과 Worker Node가 존재한다.사실 직접 쿠베네티스로 인프라를 구축하면서 크게 신경을 쓰지 않았던 부분인데, 항상 아키텍쳐만 보면 두루뭉실하고 이해가 확실히 가지 않았다. 그러다 찾은 아키텍쳐 그림중 아래 그림이 가장 직관적으로 잘 설명하는 것 같아 이번 기회에 제대로 정리해보았다. Control Plane(Master Node) Kubernetes 클러스터를 관리하고 결정을 내리는 핵심 뇌 역할이다. 이제 흔히들 Master..
Helm이란?
·
DevOps&Cloud
서론이전 쿠버네티스로 프로젝트를 진행하면서, 지겹도록 봤던 단어가 Helm이라는 용어이다.실제 프로젝트에서 적용했던 경우는 한번 밖에 없었지만, 당시에는 처음이라서 리소스를 만들거나 배포할때 아래 명령어를 사용해서 배포하고 관리했다. kubectl apply -f 근데 공부를 하고 좀 더 찾아보면, 이 Helm이라는 도구가 kubernetes에서 매우 유용하게 쓰일 수가 있다.Helm이란 무엇인가 정의:Helm은 Kubernetes용 패키지 매니저로, 애플리케이션을 정의하고 설치하고 업그레이 하는 작업 과정을 코드로 템플릿화하여 수행할 수 있도록 도와준다. Helm을 사용함으로써 복잡한 Kuberenetes 리소스 정의도 하나의 패키지(Chart)로 관리할 수 있고, 배포, 업데이트, 롤백까지 도와준다는..
프로그래머스: Stack Queue 알고리즘 문제 분석하기
·
Algorithm(Python)
Queue를 활용한 문제 풀이 1https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr [풀이과정 및 아이디어 도출]해당 문제는 "앞에있는 기능이 배포가 되지 않으면, 뒤에 있는 기능이 개발 완료되었더라도 먼저 배포 불가능하다" 가 문제의 핵심이다. 여기서 이제 "앞에있는 기능이 배포가 되지 않으면, 뒤에 있는 기능이 개발 완료되었더라도 먼저 배포 불가능"--> 선입 선출 --> FIFO --> Queue를 떠올렸다 그러면 큐에는 무엇을 저장해야할까?-> 작업 순서 및 크기, 작업 진행 속도: 이 ..
Reverse Proxy, LoadBalancer의 차이 알아보기
·
DevOps&Cloud
Reverse Proxy란? Reverse Proxy는 서버와 클라이언트 사이에 위치하여, 서버로 들어오는 요청을 관리해주며 응답도 처리해주는 것이다. 가장 대표적으로 Reverse Proxy의 도구로 Nginx를 많이 사용한다.Client로부터 요청이 들어오면, NGINX가 그 요청을 받아서 서버풀로 적절하게 라우팅을 해주게 된다.마찬가지로 서버의 응답도 NGINX를 거쳐서 Client에게 보내지게 된다. Reverse Proxy를 쓰면 좋은점 대표적으로 아래와 같다. 1. 보안 강화 (서버 보호)클라이언트는 실제 백엔드 서버의 IP를 모르기 때문에 클라이언트의 서버 직접 접근을 차단할 수 있다 → DDoS, 해킹 방어인증, 방화벽, SSL 처리 등도 프록시에서 전담 가능하다2. 캐싱 기능으로 성능 ..
AWS Cloudfront와 CDN 이해하기
·
AWS
AWS CloudFront란? AWS CloudFront란 Amazon Web Service에서 제공하는 CDN 서비스이다. 쉽게 말해, 전세계 사용자들에게 빠른 웹 콘텐츠(사진, 동영상, HTML, JS 등)를 제공하는 것을 목표로한다. Cloud Front at a High Level해당 사진에서 볼수 있듯이 정적 웹 콘텐츠를 캐싱하여 클라이언트에게 전송해준다.Client: 특정 웹서버와 S3로 부터 beach.jpg 파일을 요청하고 있다.case1: Cloud Front Edge Location에 캐싱이 되어있을때Orign Server로 향하지 않고, Edge Location의 Local Cache로 부터 캐싱된 값을 요청하여 받아온다.case2: Cloud Front Edge Location에 캐..
2023 KAKAO BLIND RECRUITMENT: 택배 배달과 수거하기(LV2)
·
Algorithm(Python)
문제 링크(프로그래머스)https://school.programmers.co.kr/learn/courses/30/lessons/150369 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이과정문제를 보면 결국 구해야하는 것은 왔다갔다한 '최소 거리'이다.결국 구해야하는 것은현재 i 번째 집에 배달하거나 수거해야할 박스가 있는지 이다. -쉬운 풀이- 1. 트럭에 실을 수 있는 박스와 현재 i, i-1, i-2,...0 번째 집에 배달해야하는 박스가 얼마나 있는지 확인하기2. 박스를 i번째 집까지 전부 배달하고 오면서 수거할 수 있는 박스가 얼마나 있는지, 그리고 트럭에 얼마만큼 실을 수 있는지를 구하..
Kubernetes의 Ingress Controller와 LoadBalancer 역할 이해하기
·
DevOps&Cloud
문득 이전 쿠버네티스 프로젝트를 공부하다가 다음과 같은 생각이 들었다."Ingress Controller가 Loadbalancer랑 하는 역할이 비슷한거 같은데 뭐지..?" 이를 위해서 이번에는 두개의 차이점과 어떻게 사용할 수 있는지에 대해 정리해보았다.Ingress Controller란?쿠버네티스 클러스터 바깥에서 들어오는 HTTP/HTTPS 트래픽을 클러스터 안의 서비스(Pod)로 라우팅해주는 컨트롤러 아래 그림을 보면, 쿠버네티스내의 노드에 여러 서비스가 동작하고 있다고 하면 Ingress Controller는 외부로 부터 요청을 받아 특정 path 기반으로 적자한 서비스의 ClusterIP에 맞춰 라우팅을 해준다.  좀 아래 사진을 통해 좀 더 자세히 알아보면, 외부 클라이언트는 파드에 직접 접..
Classic Solution Architecture 비교하며 이해하기(AWS)
·
AWS
총 2가지 경우를 두고 아키텍쳐에 대해 공부해보았다. 1. Stateless Web APP개념서버는 요청 간에 상태를 저장하지 않음각 요청은 독립적이며, 필요한 모든 정보를 클라이언트가 매번 보내야 함주로 REST API가 이 구조예시RESTful API 서버CDN 기반의 정적 웹사이트JWT (JSON Web Token)로 인증 처리하는 SPA (Single Page Application)2. Stateful Web APP개념서버는 사용자 상태(세션, 로그인 정보 등)를 기억사용자의 이전 요청 정보를 바탕으로 다음 요청을 처리예시전통적인 웹 애플리케이션 (ex. JSP/Servlet, PHP)로그인 후 쇼핑 카트나 게임 세션 유지세션 기반 로그인 방식 (서버에 session ID 저장)Stateless ..