다음과 같은 Qwiklabs 과정을 거치면서 배운 내용이다:
- Kubernetes Engine: Qwik Start
- Setup Network and HTTP Load Balancer
우선, 저 과정들을 거치면서 모르거나 새로 배운 내용들에 대한 정의를 써보도록 하겠다. 나름 나의 해석?도 들어가 있는 것이라 정확하지는 않을 수도 있으나, 최대한 찾아본 내용을 토대로 썼다.
- Cluster: Consistst of at least 1 cluster master machine and multiple worker machines called nodes. Nodes are Compute Engine VM instances. Instance is a VM hosted.
- Container: A standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another → Always runs the same, regardless of infrastructure. Images들을 실행한 상태라고 보면 된다. 어떻게 보면 애플리케이션이라고 생각하면 된다. 이미 내부의 images들이 실행되어 있는 것이기 때문
- Pod: A group of 1 or more containers. Pod always runs on a Node (설명을 종합해서 비유해보면 Node가 Windows같은 OS고, Pod가 어플, 그리고 container이 그 어플 안에 있는 각각의 특정 실행 프로그램이라고 이해했다.)
- The Difference between Kubernetes Engine ↔ Compute Engine?: Compute Engine creates a VM by allocating hardware specific resources. Kubernetes engine is a step-up from a compute engine and uses Kubernetes and Containers to manage application (즉, Kubernetes는 완전 클라우드에서 이루어지는 것으로 보면 되고, Compute Engine은 내가 클라우드에서 새로운 컴퓨터를 만들어서 조종하는 것이라고 이해했다.)
- Load Balancer: 우리나라 말로 부하분산. 둘 또는 셋 이상의 중앙처리장치에게 작업을 나누는 것을 의미한다. 가용성 및 응답시간을 최적화시킬 수 있는 장점을 가지고 있다. 여기에는 L4 Network Load Balancer이 있고, L7 HTTPS Load Balancer이 있는데, 이는 나중에 설명해보도록 하겠다.
- Target Pool: Defines a group of instances that should receive incoming traffic from forwarding rules → 특정 IP에서 오는 (또는 port, protocol type) 신호에 따라 forwarding rule이 Target Pool로 "redirect"시키는 것
- sh file: shell script 또는 script file이라고 말하는데, something between single command and a small program → chained a few shell commands together in a file so when the shell tells to execute the sh file, the file will execute all the specified commands in the file → 단순히 명령을 모아놓은 파일이라고 생각하면 된다.
- SMTP: Simple Mail Transfer Protocol - A protocal for sending email message between servers
Network Load Balancer / HTTPS Load Balancer
Network Load Balancer 같은 경우, 다음과 같은 그림의 예시를 나타낼 수 있다:
Network load balancing allows you to balance the load of your systems based on incomping IP protocol data, such as adress, port and protocol type. 즉, client의 IP 주소에 따라 Compute Engine을 할당할 수 있다는 내용이다.
HTTPS Load Balancer 같은 경우는, 다음과 같은 그림의 예시를 나타낼 수 있다:
Qwiklabs에 적힌 설명에 따르면, HTTPS Load Banancing은 provides global load balancing. Able to configure URL rules that route some URLs to one set of instances and route other URLs to other instances. Requests are always routed to the instance group that is closest to the user, provided that group has enough capacity and is appropriate for the request. If the closest group does not have enough capacity, the request is sent to the closest group that does have capacity. → url에 따라 load balancing을 한다고 이해했다. 사진에 보이듯이, api, image, video와 같이 요구하는 url에 따라 다른 Backend service(centralized service that manages backends, which manages some number of instances), Backend Bucket(정적인 자료를 다룸)로 보내준다. 그리고 그 Backend Service는 그 client와 가장 가까운 region의 instance group으로 사용자를 보내준다.
사실이 Network Load Balancing과 HTTPS Load Balancing이 L4 / L7 Load Balancing을 설명하는 것이다.
L4 Load Balancing은 IP, TCP등의 정보를 바탕으로 Load Balancing 하는 것이고, L7 Load Balancing은 애플리케이션 계층에서 Load Balancing 시키기 때문에 HHTP헤더, 쿠키 등과 같은 사용자의 요청을 기준으로 특정 서버에 트래픽을 balancing 시키는 것이 가능하다.
'GCP 공부 일기' 카테고리의 다른 글
Managing Deployments Using Kubernetes Engine - Qwiklabs 실습 (0) | 2020.10.18 |
---|---|
Orchestrating the Cloud with Kubernetes - Qwiklabs 실습 (0) | 2020.10.16 |
Introduction to Docker Containers - 도커 컨테이너 기초 다지기 (1) (0) | 2020.10.15 |
Getting Started: Create and Manage Cloud Resources: Challenge Lab 시도 (0) | 2020.10.14 |
Google Cloud Machine Type에 대해 알아보기 (E2, N2, N2D, N1) (1) | 2020.10.11 |