1 분 소요

AWS EKS를 이용해 쿠버네티스 클러스터를 운영하는데, 로컬에서도 비슷한 환경을 만들어 개발/테스트를 진행해야 합니다.
minikube를 이용해 로컬에 클러스터를 구성하는 방법을 공유합니다.

image

minikube 설치

$ brew install minikube

homebrew를 이용해 간단히 설치할 수 있습니다.
macOS가 아닌 경우 minikube Getting Started를 참고해 사용하는 OS에 맞게 설치할 수 있습니다.

클러스터 실행

# eks에서 v1.14.8을 사용하는 중인 경우의 예입니다.
$ minikube start --kubernetes-version v1.14.8

--kubernetes-version 옵션으로 쿠버네티스의 버전을 지정해줄 수 있고(옵션을 사용하지 않으면 minikube가 지원하는 최신 버전을 사용합니다.),
—-cpus, --memory, --disk-size 옵션으로 자원을 할당 할 수 있습니다.
다른 옵션은 minikube start --help 를 참고 해주세요.

작성일(2020. 1. 6.) 기준 AWS EKS는 쿠버네티스 v1.14.8까지 지원하고 있습니다. (AWS EKS 플랫폼 버전)

minikube status 를 이용해 minikube의 상태 확인을 할 수 있습니다.

$ minikube status
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

버전을 확인하면 1.14.8 버전으로 실행이 완료된 것을 확인할 수 있습니다.

$ kubernetes version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.8", GitCommit:"211047e9a1922595eaa3a1127ed365e9299a6c23", GitTreeState:"clean", BuildDate:"2019-10-15T12:11:03Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.8", GitCommit:"211047e9a1922595eaa3a1127ed365e9299a6c23", GitTreeState:"clean", BuildDate:"2019-10-15T12:02:12Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}

쿠버네티스 설정 파일(~/.kube/config)을 확인하면 minikube 클러스터와 유저가 추가되고 현재 컨텍스트가 minikube인 것을 확인할 수 있습니다.
(EKS 클러스터에 연결하지 않았다면 minikube만 있을 수 있습니다.)

# ~/.kube/config
apiVersion: v1
clusters:
- cluster:
    (...)
    name: arn:aws:eks:ap-northeast-2:(...):cluster/(...)
- cluster:
    (...)
    name: minikube
contexts:
- context:
    cluster: arn:aws:eks:ap-northeast-2:(...):cluster/(...)
    user: arn:aws:eks:ap-northeast-2:(...):cluster/(...)
    name: arn:aws:eks:ap-northeast-2:(...):cluster/(...)
- context:
    cluster: minikube
    user: minikube
    name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: arn:aws:eks:ap-northeast-2:(...):cluster/(...)
    (...)
- name: minikube
    (...)

여러 클러스터 중 kubectl 을 사용할 클러스터를 지정할 때는 kubectl config use-context 명령어를 사용할 수 있습니다.

$ kubectl config use-context minikube
Switched to context "minikube".
$ kubectl config use-context arn:aws:eks:ap-northeast-2:(...):cluster/(...)
Switched to context "arn:aws:eks:ap-northeast-2:(...):cluster/(...)".

또는 Docker Desktop을 사용할 수 있습니다.

image

클러스터 대시보드

$ minikube dashboard

브라우저를 통해 쿠버네티스 대시보드를 보여줍니다.

클러스터 중지

$ minikube stop

클러스터 삭제

$ minikube delete

간단한 사용법을 소개했습니다.
이외의 minikube 명령어는 minikube --help를 통해 확인할 수 있습니다.


참고자료

댓글남기기