Kubernetes
-
[Kubernetes] Minikube 설치 및 애플리케이션 실행Kubernetes 2022. 1. 12. 22:48
minikube 는 쿠버네티스를 쉽게 세팅해준다. kubernetes 를 처음부터 제대로 올리려면 그 동작 방식이나 네트워크에 대한 높은 이해를 요구한다고 한다. 초보자인 우리는 minkube 를 통해 쉽게 세팅하고 공부할 것이다. https://minikube.sigs.k8s.io/docs/start/ minikube start minikube is local Kubernetes minikube.sigs.k8s.io 위 링크를 통해 자신에게 맞는 os 를 골라 설치한다. 설치 후 아래 명령어를 실행시켜보자 minikube start k9s 설치 k9s 는 쿠버네티스 컴포넌트를 보기 좋게 보여주고, 관리하도록 도와주는 툴이다. brew install k9s # 실행 k9s 애플리케이션 실행 kubectl..
-
[Kubernetes] Spring 프로젝트 Docker hub 올려보기Kubernetes 2022. 1. 12. 21:39
Docker 관련 설명은 생략하겠다. 스프링 부트 프로젝트 준비 Spring boot 프로젝트 생성 후 Run 할 수 있는 상태에서 시작하고자 한다. 빌드 스프링 프로젝트에 Dockerfile 파일을 생성한 뒤 아래 코드를 입력한다. FROM openjdk:11 COPY ./build/libs/*.jar blip-story.jar ENTRYPOINT ["java", "-jar", "blip-story.jar"] 이 후 터미널에서 아래 명령어를 통해 실행파일(jar) 파일을 생성한다. ./gradlew clean bootjar 위 명령어를 통해 Spring boot 를 빌드하면 libs/ 디렉토리 하위에 jar 파일이 생성된다. 도커 빌드 docker build -t dkenl135/blip-story:S..
-
[Kubernetes] 쿠버네티스란Kubernetes 2022. 1. 10. 22:27
Kubernetes 는 구글이 출시한 오픈소스 프로젝트로, 컨테이너화된 애플리케이션을 쉽게 배포하고 관리할 수 있게 해주는 소프트웨어 시스템이다. 컨테이너 기반답게 동일한 서버 내의 다른 애플리케이션에게 영향을 미치지 않는다. 쿠버네티스를 활용하면 인프라를 추상화하여 개발, 배포, 관리를 단순화시킬 수 있다. 시스템 쿠버네티스 시스템은 마스터 노드와 여러 워커 노드로 구성된다. 개발자가 애플리케이션 메니페스트를 마스터에 게시하면 쿠버네티스는 해당 애플리케이션을 워커 노드 클러스터에 배포한다. 마스터 노드 : 쿠버네티스 시스템을 제어하고 관리하는 쿠버네티스 컨트롤 플레인을 실행 워커 노드 : 실제 배포되는 컨테이너 애플리케이션을 실행 클러스터 아키텍처 컨트롤 플레인(마스터 노드) 클러스터를 제어하고 작동시..
-
[Kubernetes] 도커란?Kubernetes 2022. 1. 7. 00:05
지난 포스팅에서 컨테이너에 대해서 간략히 알아봤다. 컨테이너는 그 전부터 쓰여왔는데 도커로 인해 널리 알려지게 되었다. 도커란? 애플리케이션을 패키징, 배포, 실행하기 위한 플랫폼이다. 애플리케이션 소스코드 뿐만 아니라 실행환경, 라이브러리 등을 통채로 패키지화 시키는게 포인트이다. 실행환경을 포함하여 패키지화 시키면 앞서 말했던 개발환경과 프로덕트 환경이 다른 문제를 방지할 수 있다. (실행환경까지 패키지화하였으니 두 환경은 거의 같은 환경이기 때문) 구성요소 이미지 애플리케이션과 환경을 패키지화 한 것 파일 시스템과 실행해야할 실행파일의 경로 같은 메타 데이터도 포함 레지스트리 도커 이미지를 저장하고, 다른 사람과 이미지를 공유할 수 있는 저장소 레지스트리에 이미지를 등록해두면 다른 사람들도 해당 이..
-
[Kubernetes] 컨테이너의 이해Kubernetes 2022. 1. 6. 22:25
마이크로 서비스 아키텍쳐에서 뿐만 아니라 모든 서비스가 갖고 있는 문제가 있다. 개발 환경과 프로덕트 환경이 다르다는것 개발 환경에서는 잘 되던 코드가 프로덕트 환경에서 안되는 일을 개발자라면 한 번 쯤은 경험했을 것이다. 심지어 마이크로 서비스 아키텍쳐에서는 그러한 환경이 더 많으니 더 자주 발생할 수 밖에 없고, 각각의 서비스들이 같은 라이브러리지만 다른 버전을 사용하는 등의 종속성 문제 또한 빈번하게 발생한다. 예를 들어 A와 B 서비스가 라이브러리 L을 사용한다고 하자. A와 B는 하나의 머신에 있고, A는 L의 1.0버전을, B는 1.1 버전을 사용한다. 이 때 머신은 L의 어떤 버전을 설치해야할까? L이 하위 호환을 잘 해주는 라이브러리라면 상관 없겠지만 그렇지않다면 에러가 발생할 수 밖에 없..
-
쿠버네티스(Kubernetes) 란?Kubernetes 2022. 1. 6. 22:08
과거에는 대부분의 서비스들이 하나의 큰 프로그램이였다. 그래서 개발자의 코드 수정 이후 이 큰 프로그램을 패키징하여 배포하고, 유지 보수하는 일이 여간 쉽지 않았다. 그래서 배포 주기는 점점 길어졌고, 효율성은 떨어져갔다. 쿠버네티스는 하드웨어 인프라를 추상화하고 데이터 센터 전체를 하나의 컴퓨팅 리소스로 제공한다. 쉽게 말해서 버튼 하나, 명령어 하나 만으로 컴퓨팅 머신을 세팅하고, 프로그램을 배포/실행 할 수 있게된 것이다. 이로 인해 컴퓨팅 리소스 및 애플리케이션 간의 통신이 원활해지고, 마이크로 아키텍쳐가 가능해졌다. 모놀리시스 애플리케이션 하나의 큰 프로그램 하나로 강하게 결합되어 있기에 작은 수정에도 모든 코드를 배포해야함 규모가 커질수록 비효율적 하나의 하드웨어 컴퓨터에 올라가있으므로 수직적..