🤔Google Cloud Study Jam: 주최에서 제공하는 Qwiklabs(실습)쿠폰 및 Coursera 강의를 활용하여 Google Cloud Platform (GCP) 에 입문할 수 있도록 하는 온라인 학습 프로그램.
🤔시작 계기: Google에서 제공하는 Cloud Study Jam이 존재한다는 것을 우연히 동아리 디스코드 방에서 알게 되었다. 이 스터디에는 머신러닝, 쿠버네티스 등과 관련되어 초급/중급/고급 레벨이 존재하는 것 같아보였는데 나는 쿠버네티스 중급단계에 도전하기로 했다. 그동안 클라우드에 대한 지식이 없기도 해서 이번에 알아가면 좋겠다 싶었고 나름 Lab도 있어서 단순히 이론적인 내용만 나오지 않으리란 기대감이 생겼다. 사실 시작계기의 주 목적은 완주 기념품인것 같기도.. (알고보니 2022년에는 AI&ML 입문/중급/심화, 쿠버네티스 입문/중급/심화 총 여섯 개의 과정으로 진행되었다고 한다.)
🤔신청방법: Google Cloud사이트가면 바로 신청할수 있는 폼이 나온다. 신청 후 얼마지나서 아래와 같이 신청한 메일로 링크가 오게 되는데 해당 링크를 통해 들어가면 스터디 잼 안내에 대한 ppt에 상세한 설명이 적혀져 있어서 스터디 일정및 수강완료 이해에 대한 어려움이 크게 없었다.
🤔수업 구성: 크게 4개 파트로 구성된다. 핵심 개념부분만 정리하고자 한다.
Module 1: Introduction to Google Cloud
Module 2: Introduction to Containers and Kubernetes
Module 3: Kubernetes Architecture
Module 4: Introduction to Kubernetes Workloads
Module 1: Introduction to Google Cloud
Cloud computing has 5 fundamental attributes.
- On-demand self serivce
- Broad network access
- Resource pooling
- Rapid elastricity
- Measured service
Google Cloud offers a range of services.
It computes => Compute Engine(vm을 cloud에서 돌리는 경우)/ GKE(google이 관리하는 클라우드 환경에서 컨테이너화된 어플을 실행하며 사용자에게 관리 권한을 부여)/ App Engine/ Cloud run/ Cloud Functions
Google Cloud provices resources in multi-regions, regions, and zones.
Resources are organized both physically and logically.
How to keep your billing under control?
- Budges and alerts
- Billing export
- Reports
About Resource management...
- Google cloud는 multi-region, region, zone을 통해 resource를 제공
- Multi-region : America, Europe, Asia-Pacific ➔ divided into regions
- Region : 같은 대륙 내에서 독립된 지리적 위치, region 내에서 네트워크 연결이 빠름
➔ divided into zones - Zones : 집중된 지리적 위치 내에 있는 GCP resource의 배포 위치
- 인터넷 사용자가 구글 resource로 트래픽을 전송하면, google은 지연시간이 가장 낮은 edge network 위치에서 응답함
There are 4 ways to interact with Google Cloud
- Google Cloud Console
- Cloud SDK and Cloud Shell
- Cloud Console mobile app
- REST-based API
Module 2: Introduction to Containers and Kubernetes
Hypervisors(aka 가상머신모터) create and manage virtual machines.
Running multiple apps on an single VM에서는 종속 항목을 공유하는 app이 서로 격리되지 않는 문제가 발생한다.
그래서 VM-centric way(App마다 전용 가상 머신을 실행)를 생각해봤는데 물론 커널이 격리되어 있으므로 app끼리 성능에 영향을 주지는 않지만, 대규모 시스템의 경우 중복적이며 낭비로 이어진다. 그래서 나온게 Container!
Containers are isolated user spaces for running application code.
Containers use a varied set of Linux technologies.
+) what is the difference between contianer and image?
이미지란 컨테이너 실행에 필요한 파일과 설정 값 등을 포함하고 있는 것을 의미한다.즉, 이미지를 실행한 상태가 컨테이너라고 볼 수 있다.이미지의 경우 상태 값을 가지지 않고 변하지 않는다는 특징이 있기 때문에 같은 이미지로 여러개의 컨테이너를 생성하는 것이 가능하고 컨테이너의 상태가 바뀌거나 삭제되어도 이미지는 그대로 남아있게 된다. (이미지-붕어빵틀, 컨테이너-붕어빵으로 보면됨. 마치 class-instance관계)
Google Cloud offers a managed Kubernetes solution called Google Kubernetes Engine(GKE).
Comparing Google Cloud computing solutions.(GKE는 많은 특징들을 가지고 있고, 이 코스의 가장 메인토픽으로 보인다.)
Module 3: Kubernetes Architecture
Kubernetes란:
- Container 인프라를 더 효과적으로 관리하기 위함
- Kubernetes를 사용할 때 원하는 상태를 설명하면 Kubernetes는 배포된 시스템을 원하는 상태에 맞게 만들고 장애가 발생해도 상태를 유지
There are two elements to Kubernetes objects.
Kubernetes objects: Persistent entities representing the state of the cluster
- Object spec: Desired state described by us
- Object status: Current state described by Kubernetes
Containers in a Pod share resources.
Pod : 표준 kubernetes 모듈의 기본 구성요소, kubernetes 시스템에서 실행 중인 모든 컨테이너를 의미함. Kubernetes는 각 pod에 고유한 IP 주소를 할당; pod 내의 모든 container는 네트워크 namespaces를 공유.
Desired state compared to current state.
- Kubernetes가 원하는 상태를 지정했다고 가정했을 때, 해당 상태를 나타내는 하나 이상의 객체를 만들고 유지하도록 kubernetes에 지시하여 작업을 실행
➔ kubernetes는 원하는 상태를 현재 상태와 비교 ➔ kubernetes의 제어영역이 cluster 상태를 지속적으로 모니터링하여 상태를 수정
GKE manages all the control plane components.(GKE는 사용자를 대신하여 모든 제어 영역 구성요소를 관리함. 이외에도 여러 장점 존재...)
Module 4: Introduction to Kubernetes Workloads
Kubectl(aka 쿠버네티스 커맨드 라인 도구) is a utility used by administrators to control Kubernetes clusters. You use it to communicate with the Kube API server on your control plane.
- 명령줄 입력 내용은 API 호출로 전환한 후 선택한 kubernetes cluster 내 kubeAPI 서버로 전송함.
- Use kubectl to see a list of Pods in a cluster
- kubectl must be configured first
[Deployments]
- Deployments declare th state of Pods(Pod 사양을 업데이트 할 때마다 변경된 deployment 버전과 일치하는 새 ReplicaSet이 생성)
- Deployment is a two-part process
- Deployment has three different lifecycle states(Progressing state, complete state, failed state)
[Pod networking]
Pod : a group of containers with shared storage and networking.(Kubernetes Pod는 Linux 컨테이너를 하나 이상 모아 놓은 것으로, 쿠버네티스 애플리케이션의 최소 단위임. 컨테이너를 쿠버네티스 포드로 그룹화하는 이유는 아래의 설명과 같이 리소스를 더 지능적으로 공유하기 위해서) => 같은 포드에 속한 컨테이너끼리 동일한 컴퓨팅 리소스를 공유.
Your workload doesn't run in an single pod.
Node get pod IP addresses from address ranges assigned to your virtual private cloud.
+) 쿠버네티스에 대한 개념을 더 알고싶다면?
🤔수료현황은? 어찌됐든 뱃지획득하는 거는 성공했다. Lab자체는 어려운 것이 크게 없었고 생각보다 시간도 잡아먹지 않았다. 스터디를 하고나서 느낀것은 한번경험하기엔 좋은 것 같긴 하지만 머랄까..너무 찍먹느낌이 있어서 다음번에 신청할 것 같지는 않다. 어찌됐든 수료했으니 얼른 구글 로고가 들어간 파우치를 받고 싶다. 😍근데 사실은 아직 이해못한 개념들이 좀 있기도 한데.. 차차 내용을 더 채워나가자ㅠㅡㅠ
'일상 > 취준 과정' 카테고리의 다른 글
프로그래머스 level 1 완료 (0) | 2023.05.11 |
---|---|
Resume를 써보자 (0) | 2023.05.04 |
전략 다시 세우기 (0) | 2023.05.02 |