반응형

이 포스팅은 2020년 네이버 블로그에 게시 했던 글을 리 포스팅한 글입니다.

 

Minikube(미니큐브)란?

쿠버네티스는 마스터 노드(Master Node)와 하나 이상의 워커 노드(Worker Node)로 구성되어 있습니다. 그러나 단순 개발 테스트를 위해 개인이 이 정도의 플랫폼(Platform)을 구성하는 것은 쉽지 않습니다.

 

Minikube(미니큐브)는 마스터 노드의 일부 기능과 개발 및 배포를 위한 단일 워커 노드를 제공해 간단한 쿠버네티스 플랫폼 환경 개인 PC에서 만들어 볼 수 있게 만들어 줍니다.(이런 개인용 Kubernetes 개발 테스트 환경으론 Kind라는 제품도 있습니다.)

 

Minikube에 대한 원본 기사는 아래의 링크를 통해 확인 가능합니다.

 

Minikube를 사용해서 클러스터 생성하기

목표 쿠버네티스 클러스터가 무엇인지 배운다. Minikube가 무엇인지 배운다. 온라인 터미널을 사용해서 쿠버네티스 클러스터를 시작한다. 쿠버네티스 클러스터 쿠버네티스는 컴퓨터들을 연결하

kubernetes.io

 

설치에 필요한 것

 

Minikube 설치

단일 노드(Node) 쿠버네티스 환경인 minikube를 설치하기 위해서는 PC의 OS 환경에 맞는 가상 머신(Virtual Machine)과 minikube 그리고 이를 조작하기 위한 kubectl의 설치가 필요합니다.

 

각 OS에 맞는 minikube설치는 아래의 링크를 참조하시기 바랍니다.

 

 

 

minikube start

minikube is local Kubernetes

minikube.sigs.k8s.io

 

mac에서 사용하고자 하는 분은 아래와 같은 순서로 설치를 하시면 됩니다. Windows라고 하더라도 크게 다르지는 않습니다. 1. 가상 머신(Virtual Machine) 설치, 2. kubectl설치, 3. minikube 설치

 

1. brew install virtualbox
2. brew install kubectl
3. brew install minikube

e.g. Windows 10의 경우 30Mbyte 정도의 'minikube-installer.exe'를 다운로드해 설치 한 후 minikube start를 하면 필요한 항목을 다운로드 받으면서 설치가 완료된다.

 

minikube 실행

설치가 완료되었으면 콘솔(Console)을 통해 minikube를 다음과 같이 실행 해 보도록 합니다.

 

$ minikube start

minikube 실행 창

 

Password를 묻는 커맨드 프롬프트(Command Prompt)에는 OS의 Password를 입력 하도록 합니다.

 

Minikube dashboard 실행

kubernetes의 cluster 정보를 웹 브라우저(Web Browser)를 통해 보기 쉽도록 표시해주는 kubernetes dashboard를 아래의 명령어를 통해 minikube에서 실행해 보도록 합니다.

 

$ minikube dashboard

minikube dashboard 실행

 

minikube dashboard가 정상적으로 실행되면 아래와 같이 웹 브라우저가 자동으로 실행되며 PC에 설치된 kubernetes 클러스터(Cluster)정보를 표시해 줍니다.

 

만약 웹 브라우저가 자동으로 실행되지 않는다면 콘솔창에 표시된 URL을 copy 해서 웹 브라우저에 붙여넣기 하시면 됩니다.

 

 

Minikube addons list 확인

minikube에 dashboard와 같이 미리 addon 되어있는 package 들은 minikube addon list를 통해 확인 할 수 있습니다.

 

$ minikube addons list

minikube에 설치된 addons 리스트

 

  • Dashboard : K8S 클러스터 또는 클러스터에서 실행중인 프로그램들을 웹 UI기반으로 관리합니다.
  • Heapster : (Deprecated) Metrics-server 와 같은 타사의 메트릭 파이프 라인을 사용하라고 합니다.
  • Elasticsearch Add-On :Elasticsearch에 저장된 로그를 보고 쿼리하는 UI를 제공합니다.
  • Registry : ImagePullSecrets를 통해 Kubernetes 클러스터 내에서 레지스트리 자격 증명을 새로 고칠 수 있습니다.
  • CoreDNS : 표준 Kube-DNS 대신 CoreDNS를 실행할 수 있습니다.
  • Ingress : Kubernetes Ingress 리소스를 기반으로 구축 된 NGINX 컨트롤러입니다.
  • freshpod : 이미지가 업데이트 될 때 컨테이너를 자동으로 다시 시작하도록 도와줍니다.

 

Minikube addons 활성화/비활성화

minikube에서 제공되는 addon 패키지는 다음의 명령어를 통해 활성화/비활성화를 할 수 있습니다.

 

$ minikube addons enable[/disable] [addon-name]

 

 

자주쓰는 미니큐브 명령어

Basic Commands:
  start 로컬 쿠버네티스 클러스터를 시작합니다
  status 로컬 쿠버네티스 클러스터의 상태를 가져옵니다
  stop 실행 중인 로컬 쿠버네티스 클러스터를 중지합니다
  delete 로컬 쿠버네티스 클러스터를 삭제합니다
  dashboard minikube 클러스터 내의 쿠버네티스 대시보드에 접근합니다
  pause 쿠버네티스를 잠시 멈춥니다
  unpause 잠시 멈췄던 쿠버네티스를 재개합니다
Images Commands:
  docker-env Minikube Docker 데몬을 이용하기 위한 환경 구성
  podman-env Minikube Podman 서비스 이용을 위한 환경 구성
  cache minikube에 로컬 이미지를 추가하거나 삭제, 푸시합니다
  image Image 관리
Configuration and Management Commands:
  addons Minikube addon 서비스(오브젝트) 관리
  config 수정 퍼시스턴스 환경 값
  profile 현재 프로파일(Clusters Profile) 보기
  update-context IP Port 변경시 Kubeconfig 변경
Networking and Connectivity Commands:
  service 서비스에 연결된 URL을 반환합니다
  tunnel LoadBalancer 서비스에 연결
Advanced Commands:
  mount 특정 디렉토리를 minikube 에 마운트합니다
  ssh (디버깅을 위해) minikube 환경에 접속합니다
  kubectl 클러스터 버전에 맞는 kubectl 바이너리를 실행합니다
  node 노드를 추가하거나 삭제, 나열합니다
  cp minikube로 파일 복사
Troubleshooting Commands:
  ssh-key 지정된 노드의 ssh identity key를 조회
  ssh-host 지정된 노도의 ssh host key 조회
  ip 지정된 노드의 IP 주소를 가져옵니다
  logs 로컬 쿠버네티스 클러스터를 디버그하기 위해 로그를 반환합니다
  update-check 현재 그리고 최신 버전을 출력합니다
  version minikube 의 버전을 출력합니다
  options global command-line 옵션 리스트 보기

 

 

이번 포스팅은 여기까지 하겠습니다.

 

다음 포스팅에서는 간단한 node.js 와 도커 컨테이너로 구성된 hello 어플리케이션을 minikube 클러스터에 설치해 실행해 보는 예제를 작성해 보도록 하겠습니다.

 

감사합니다.

 

반응형

+ Recent posts