본문 바로가기

Kubernetes

(10)
[K2P&HAC] 초거대 AI 활용을 위한 Hyperscale AI Computing과 Container 서비스 최근 AI가 모든 산업에 적용되면서 AI 모델은 점차 대형화되고 있고, 그로 인해 대규모 데이터 분석을 가능하게 하는 GPU 컴퓨팅 시장이 성장하고 있습니다. 기업은 머신러닝 및 딥러닝을 위한 GPU 수요가 증가하고 있지만, 설치비용, 운영비용, 주문&설치기간 등을 고려할 때 Cloud를 활용하여 GPU를 사용할 수 있는 GPUaaS(GPU-as-a Service) 활용이 증가하고 있는데요. 세계적으로 Cloud 전환이 가속화되고, 비디오 편집, 그래픽 디자인, 이미지 처리 등 고성능 컴퓨팅에 대한 수요가 증가함에 따라 GPUaaS 기술의 시장 전망은 2025년까지 연평균 38% 성장하여 약 71억 달러 규모로 성장할 것으로 예상됩니다. 이처럼 GPUaaS 시장 전망을 보면 AI 기술은 매년 꾸준히 발달..
쿠버네티스(Kubernetes) 알아보기 컨테이너(Container)에 대해서도 한계점은 있습니다. 컨테이너(Container)는 가벼운 대신 하나의 서버 또는 VM에 여러 개의 컨테이너(Container)들이 동작한다면 이렇게 많은 컨테이너(Container)들을 어떻게 관리할 수 있을까요? 컨테이너 엔진인 도커(Docker)는 하나의 서비스를 컨테이너로 가상화시켜 배포하는 역할만 할 뿐 수 많은 컨테이너 서비스를 일일이 배포하고 운영/관리하는 역할을 하지는 않습니다. 따라서 컨테이너(Container) 관리자의 경우 VM SSH로 접속해 실행되고 있는 VM마다 들어가서 관리해야하는 불편함을 갖고 있습니다. 만약 서버가 다운되면 서버안의 모든 컨테이너(Container)가 종료되는 단점이 발생하고, 이를 개선하기 위해 모니터링 할 수 있는 기..
KT Cloud Container 이렇게 이용해 보세요(feat. DevOps Suite) KT Cloud Container 상품은? kt cloud에서 제공하는 Container 상품에는 총 3가지가 있습니다. CaaS, Container, DevOps Suite이 있는데, 그 중에서 Container와 DevOps Suite의 상품 소개 및 이용 방법에 대해서 설명해드리고자 합니다. Containr 상품은 OKD(Origin Community Distribution of kubernetes)를 기반으로 Container Platform를 제공하고 있는 서비스로 Multi Container Platform 수용/관리 할 수 있는 Container Orchestration Tool 입니다. 여기서 OKD란 컨테이너 기반 소프트웨어의 배포 및 관리를 할 수 있는 OpenShift의 오픈 소스 버..
쿠버네티스, 이것만 알면 된다! - #7 Volume(볼륨) 사용법 쿠버네티스는 상태를 저장하지 않는 Stateless이므로, 어떠한 문제가 발생하여 컨테이너가 삭제된다면 데이터도 같이 삭제됩니다. 이렇게 될 경우, 로그 파일을 보관해야 한다거나 데이터베이스를 사용할 경우 데이터가 사라지면 큰 장애가 발생할 수 있습니다. 따라서 데이터가 사라지지 않고 보존되어야 할 경우 볼륨(Volume)을 사용합니다. emptyDir, hostPath 먼저 쿠버네티스의 여러 가지 볼륨 중 임시 디스크를 사용하는 emptyDir, 로컬 디스크를 사용하는 hostPath에 대해서 알아보도록 하겠습니다. emptyDir emptyDir은 생성 당시에는 디스크에 아무 내용이 없으므로, emptyDir이라고 합니다. emptyDir은 Pod가 생성될 때 생성되고, Pod가 삭제될 때 같이 삭제..
쿠버네티스, 이것만 알면 된다! - #6 쿠버네티스의 서비스 쿠버네티스의 서비스란? 만들어진 Pod끼리 통신을 하기 위해서는 "서비스"가 필요합니다. 쿠버네티스에서 서비스란 네트워크 서비스로 노출하는 추상화 방법을 의미하는데, Pod를 논리적으로 구분하여 접근하도록 하는 것입니다. 서비스에서는 라벨 셀렉터(Label Selector)를 사용하여, 관리하고자 하는 Pod들을 정의할 수 있습니다. 쿠버네티스가 제공하는 서비스의 종류는 다음과 같습니다. ClusterIP: 기본 서비스 타입으로, 쿠버네티스 클러스터 내부에서 사용 가능하여, 클러스터 내부의 Node나 Pod에서 이 ClusterIP를 이용해서 서비스에 연결된 Pod와 통신 External Name: 서비스를 externalName의 값이랑 매치하여 사용하고, 클러스터 내부에서 외부로 접근할 때 사용 No..
쿠버네티스, 이것만 알면 된다! - #5 쿠버네티스의 동작 흐름 쿠버네티스의 동작 흐름 쿠버네티스에서는 새로운 Pod를 만들기 위한 과정이 다음과 같은 흐름으로 진행됩니다. 출처: https://subicura.com/2019/05/19/kubernetes-basic-1.html 1. Master Node의 kube-apiserver에 Pod 생성을 요청 2. kube-apiserver는 etcd에 새로운 상태를 저장 3. kube-controller-manager에게 kube-apiserver가 etcd의 상태 변경을 확인하여, 새로운 Pod 생성을 요청 4. kube-controller-manager는 새로운 Pod를 생성(no assign)을 kube-apiserver에 전달하고, 이를 전달받은 kube-apiserver는 etcd에 저장 5. kube-sche..
쿠버네티스, 이것만 알면 된다! - #4 쿠버네티스 설치 이제부터는 이론과 함께 실습을 통해서 쿠버네티스를 학습해보도록 하겠습니다. 실습을 위해서 우선 쿠버네티스 설치부터 시작합니다! 먼저, 설치에 앞서 Master Node와 Worker Node로 사용할 2개의 가상머신(Virtual Machine)을 준비합니다. 사전 작업 쿠버네티스를 설치하기 위해서는 2가지의 사전 작업이 필요합니다. Swap 메모리 비활성화 쿠버네티스는 Pod를 생성할 때, 필요한 만큼의 리소스를 할당 받아서 사용하는 구조입니다. 따라서 메모리 Swap을 고려하지 않고 설계되었기 때문에, 쿠버네티스 클러스터 Node들은 모두 Swap 메모리를 비활성화 해줘야 합니다. 다음 명령어를 통해서 Swap 메모리를 비활성화 시켜줍니다. Docker 설치 쿠버네티스의 밑바탕이 되는 Containe..
쿠버네티스, 이것만 알면 된다! - #3 쿠버네티스 구성 요소 쿠버네티스는 어떻게 이루어져 있을까요? 쿠버네티스는 여러 개의 노드(예를 들어, 가상서버/Virtual Machine)로 구성된 클러스터로 이루어져 있습니다. 출처: https://kubernetes.io/docs/concepts/_print/ 여기서 Node라는 개념이 나오는데요. 위의 그림에서 Node는 하나의 VM(Virtual Machine)을 의미합니다. 쿠버네티스는 컨테이너화 된 애플리케이션을 실행하는 Worker Node와 그러한 Worker Node를 관리하는 Master Node로 구성되어 있습니다. 이때 Worker Node와 Master Node는 다수로 이루어질 수 있으며, 쿠버네티스를 사용하기 위해서는 최소 1개의 Worker Node를 보유해야 합니다. Master Node에는 ..
쿠버네티스, 이것만 알면 된다! - #2 Desired State 쿠버네티스의 다양한 기능들을 어떻게 사용할까요? 쿠버네티스의 핵심은 'Desired State' 입니다! 출처: https://subicura.com/2019/05/19/kubernetes-basic-1.html 쿠버네티스는 원하는 상태를 계속 체크하고 문제가 있다면 자동으로 조치합니다. 그렇다면 원하는 상태는 무엇일까요? 원하는 상태란 관리자가 바라는 환경을 의미하고, 좀 더 구체적으로는 얼마나 많은 웹서버가 구동되고 있으면 좋은지, 몇 번 포트로 서비스하기를 원하는 등을 말합니다. 쿠버네티스는 복잡하고 다양한 작업을 하지만 자세히 들여다보면, 현재 상태를 모니터링하면서 관리자가 설정한 원하는 상태를 유지하려고 내부적으로 이런저런 작업을 하는 단순한 로직을 가지고 있습니다. 원하는 상태는 어떻게 설정하..
쿠버네티스, 이것만 알면 된다! - #1 쿠버네티스란 무엇일까? 쿠버네티스란 무엇일까요? 쿠버네티스란 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈 소스 시스템입니다. 출처: https://kubernetes.io/ 1주일에 수십억 개의 컨테이너를 생성하는 Google이 내부 배포시스템으로 사용하던 'borg'를 기반으로 2014년 프로젝트를 시작했고, 여러 커뮤니티의 아이디어와 좋은 사례들을 모아 빠르게 발전하였습니다. 이후 Google이 CNCF(Cloud Native Computing Foundation)에 코드를 기부함으로써, 쿠버네티스는 오픈 소스 프로젝트가 되었습니다. 쿠버네티스는 단순한 컨테이너 플랫폼이 아닌 마이크로서비스, 클라우드 플랫폼을 지향하고, 컨테이너로 이루어진 것들을 손쉽게 담고 관리할 수 있는 그릇 역할을 합니다. 서버리..