포스트

LG CNS 부트캠프 학습일지 59일차

학습 내용

  • Catalog Service 등을 Kubernetes 클러스터에서 실행하기
  • Amazon Web Service 사용방법

Catalog Service 등을 Kubernetes 클러스터에서 실행하기

개인적인 사정이 있어서 수업을 끝까지 따라가지는 못했다. Docker Desktop을 사용하고 있지 않기 때문에 Kubernetes 실습환경도 준비되지 못했던 것 같다. 대신에 Single Node Kubernetes 클러스터를 만들면서 어떤 부분에서 잘 안됐는지 이야기하려고 한다.

Kubernetes 공식문서를 따라서 설치하려고 했었다. Kubernetes에서 제공하는 패키지 레포지토리를 추가하고 apt-get 명령어를 사용해서 Kubernete를 설치했다. kubectl, kubeadm 그리고 kubelet 명령어들을 설치해야했다. 문제가 있었다. Kubernetes 버전이 1.36.x 버전이었는데 지원하는 containerd 버전이 2.3.0+ 또는 2.2.0+ 버전이었다. 하지만 데비안 Bookworm 또는 Trixie에 설치된 containerd 버전은 1.x.x 버전이었기 때문에 버전 불일치 문제가 있었다.

사실 버전 불일치가 원인인지는 모르겠는데, 어제 이야기했던 것처럼 Container Network Interface를 설치하고 나서부터 kubectl 명령어를 사용할 수가 없었다. Control Plane에 접근 자체가 불가능했던 것인데, 인공지능은 버전 불일치보다는 Calico를 설치하는 과정에서 문제가 있었다고 했었다. 하지만 Calico를 설치하는 것이라고 해봤자 명령어 몇 개 그대로 복사 붙여넣는 것 밖에는 없어서, 명령어가 실행되는 환경에 문제가 있는 것 말고는 다른 것을 의심하기 어려웠다.

아무튼 오늘 수업시간에는 지금까지 개발한 마이크로서비스를 Kubernetes 클러스터에 올리는 것을 실습했고, 하나의 Pod에서 서비스 장애가 발생해도 Kubernetes가 자동으로 새로운 Pod를 만드는 등의 방식으로 관리를 해준다는 것을 배웠다.

Amazon Web Service 사용방법

AWS를 사용하는 것은 결국엔 다른 사람의 서버를 빌리는 것이다. 개인 서버를 사용하는 것과 크게 다르지 않다. 사용방식에는 차이가 있을 것 같은데 지금까지 배웠던 내용으로 AWS를 사용한다면, VPS를 할당받아서 도커를 설치하고 그 위에 컨테이너를 올려서 웹 서비스를 제공하는 것이라고 생각했다. 데이터베이스까지 컨테이너로 만들면 된다고 생각했는데, AWS에서 제공하는 데이터베이스 서비스가 별도로 있었다. 컨테이너를 사용하는 방식이 불가능한 것은 아니겠지만, 설명을 듣고보니 이런 방식이 좋은 점이 있을 것 같았다.

예를 들어, 만약에 마이크로서비스와 데이터베이스가 하나의 호스트를 공유하는 상황에서 마이크로서비스 때문에 CPU 사용량이 일시적으로 치솟는 경우가 있을 수 있다. 이런 경우에 데이터베이스의 성능에 영향을 미치게 되고, 다른 마이크로서비스에도 영향이 갈 수 있다. 실무를 해본 적이 없기 때문에 데이터베이스를 별도의 호스트로 분리하는 것이 얼마나 좋은지는 모르겠지만, 아마존에서 제공하는 별도의 서비스가 그 자체로도 성능상의 이점이 있다면 그것을 사용하는 것이 좋을 것 같았다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

Comments powered by Disqus.