Google Kubernetes Engine (GKE)는 containerized application들을 관리하는 환경을 제공한다.
인터넷 서치와 배경지식을 이용해 개념들을 대략적으로 정리해보자면, 먼저 container란 기본적으로 process를 isolated하게 만드는 sandbox라 할 수 있다. (runtime 때)
container 외부 process들이 container 안의 상황을 알 수 없으며, process가 독립적인 namespace를 가질 수 있으며, container로 process가 사용할 수 있는 resource나 가능한 instruction을 제한할 수 있다.
이때, container와 container process의 lifecycle은 일치한다.
container를 이용하여 어떤 환경에서든 소프트웨어를 돌릴 수 있도록 만든 플랫폼이 Docker이다.
software을 실행하기 위해 필요한 image, dependancy들을 적는 dockerfile, 그리고 dockerfile에 적힌 image를 docker cloud를 통해 가져와 새로운 image를 만들어 쉽게 배포할 수 있다.
이러한 과정으로 Docker engine 위에서 container를 생성하여 process를 돌릴 수 있다.
Kubernetes는 container들을 관리하는 container orchestration system이다.
load-balancing, auto-scale, auto-heal, monitoring 등 다양한 기능이 있는데, 대충 container들을 cluster형태로 묶어 더욱 효율적으로 관리할 수 있다고 생각하면 되겠다.
cluster는 적어도 하나의 cluster master machine과 node라 불리는 여러 개의 worker machine으로 구성된다.
cluster를 생성하고 container registry bucket에서 이미지를 불러와 deployment object를 생성하였다.
Kubernetes service를 생성하여 외부 traffic에 나의 application을 노출시켰다.
(예제는 외부 ip로 들어갔을 때 간단한 hello, world! 창을 띄워준다)
ip는 자동 할당되는 것 같고, 포트 넘버를 지정할 수 있다.
생성한 cluster를 제거하는 것으로 마무리.
cluster 생성과 제거에 시간이 꽤나 소요된다.
이런 실습 기회를 가질 수 있어서 너무 좋은데 뭔가 생각 없이 따라 치는 명령어들이 미국에 있는 여러 컴퓨터들을 실제로 점유하며 진행된다는 점이 양심에 찔린다.
더 유용하게 쓰일 수 있을 건데,,, 지구야 미안해.
정말 구글 대단한 것 같다. 이런 시스템을 어떻게 만든걸까.
'Cloud > Google Cloud Study Jam' 카테고리의 다른 글
Cloud Storage: Qwik Start - Cloud Console (0) | 2022.03.13 |
---|---|
Set Up Network and HTTP Load Balancers (0) | 2022.03.11 |
Getting Started with Cloud Shell and gcloud (0) | 2022.03.08 |
Compute Engine: Qwik Start - Windows (0) | 2022.03.08 |
Creating a Virtual Machine (0) | 2022.03.08 |
댓글