쿠버네티스(k8s) 스터디 - Windows에 minikube 설치 및 설정하기
쿠버네티스 환경 구성을 만약 minikube로 할 경우를 위해 가이드 작성
minikube is local Kubernetes, focusing on making it easy to learn and develop for Kubernetes. All you need is Docker (or similarly compatible) container or a Virtual Machine environment, and Kubernetes is a single command away: minikube start
즉, 가벼운 쿠버네티스 구현체이며 로컬 머신에 VM을 만들고 하나의 노드로 구성된 간단한 클러스터를 생성하는 것이 특징이다. Minikube를 사용하면 로컬에서 간단하게 쿠버네티스 클러스터를 구현할 수 있다. Minikube는 리눅스, 맥, 그리고 윈도우 시스템에서 구동이 가능하다.
필요 사양은 아래와 같다고 한다.
- 2 CPUs or more
- 2GB of free memory
- 20GB of free disk space
- Internet connection
- Container or virtual machine manager, such as: Docker, QEMU, Hyperkit, Hyper-V, KVM, Parallels, Podman, VirtualBox, or VMware Fusion/Workstation
minikube를 사용하는 목적
- 쿠버네티스를 처음 입문하고 로컬 환경에서 손쉽게 쿠버네티스 명령어들을 실습하기 위해서 사용
- Minikube는 가벼운 쿠버네티스 구현체이므로 로컬 환경에서 학습용으로 사용하기 적합
- Minikube CLI는 클러스터에 대해 시작, 중지, 상태 조회 및 삭제 등의 기본적인 부트 스트래핑 기능을 제공
실습환경 : Windows 11 Pro, AMD Ryzen5 5600G, 16GB RAM, GTX 3060ti
1. VirtualBox 설치
Requirements
VirtualBox 5.2 or higher
2. minikube 설치
- PowerShell 또는 GitBash를 관리자 권한으로 실행
-
To install the latest minikube stable release on x86-64 Windows using .exe download:
Download and run the installer for the latest release.
Or if using PowerShell, use this command:
New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing
-
Add the minikube.exe binary to your PATH(시스템 설정, 환경 변수에서 직접 추가해도 되고, 아래 명령어를 사용해도 됨).Make sure to run PowerShell as Administrator.
$oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine) if ($oldPath.Split(';') -inotcontains 'C:\minikube'){ [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine) }
3. Cluster 시작
관리자 권한으로 실행한 터미널(PowerShell or others)에서
minikube start
만약 실패한다면, 드라이버 페이지에서 세팅하는 방법을 찾아서 직접 실행하기.
예를 들어, virtual box를 이용할 경우,
minikube start --driver=virtualbox --no-vtx-check --image-repository=auto
–no-vtx-check 옵션
! StartHost failed, but will try again: creating host: create: precreate: This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)
minikube start 명령어 실행 후, 위와 같은 fail error msg가 뜰 수 있다. BIOS에서도 설정했으나 위와 같은 에러가 계속 뜰 경우, ‘–no-vtx-check’ 옵션을 써야지 빌드가 됨.
Trouble shooting
-
만약 minikube start 명령어 이후, 제대로 설치되지 않는다면, 아래를 차례대로 진행 후, 재설치 시도할 것
- minikube stop
- minikube delete
- minikube profile list
-
최후의 수단은, minikube 폴더를 깔끔하게 지우는 것이다.
- 사용자 디렉토리에서 .minikube 디렉토리를 모두 지우자.
- 만약 Git Bash 이용중이라면,
cd /c/Users/{유저명} rm -rf .minikube
설치 확인
$ minikube profile list
|----------|------------|---------|----------------|------|---------|---------|-------|----------------|--------------------|
| Profile | VM Driver | Runtime | IP | Port | Version | Status | Nodes | Active Profile | Active Kubecontext |
|----------|------------|---------|----------------|------|---------|---------|-------|----------------|--------------------|
| minikube | virtualbox | docker | 192.168.59.105 | 8443 | v1.30.0 | Running | 1 | * | * |
|----------|------------|---------|----------------|------|---------|---------|-------|----------------|--------------------|
자주 사용하는 minikube 명령어 모음
$ minikube stop -p minibox
$ minikube start -p minibox
$ minikube stop
$ minikube start
$ minikube version
$ minikube node list
minikube 192.168.59.100
$ minikube node list -p minibox
minibox 192.168.59.101
minibox-m02 192.168.59.102
minibox-m03 192.168.59.103
$ minikube ip
192.168.59.100
$ minikube -p minibox ip
192.168.59.101
$ minikube -p minibox ip -n minibox-m02
192.168.59.102
$ minikube delete
🔥 Deleting "minikube" in virtualbox ...
💀 Removed all traces of the "minikube" cluster.
$ minikube delete -p minibox
🔥 Deleting "minibox" in virtualbox ...
🔥 Deleting "minibox-m02" in virtualbox ...
🔥 Deleting "minibox-m03" in virtualbox ...
💀 Removed all traces of the "minibox" cluster.
$ minikube start -n 숫자
1개의 master와 (숫자-1)개의 worker 노드를 생성함.
ex) -n 3이면, 1개의 마스터와 2개의 worker 노드가 생성됨.
minikube 에서 kubectl 명령어를 못 찾을 경우
대신 다음과 같이 minikube 명령 뒤에 kubectl – 를 추가해서 kubectl 명령을 사용해야 합니다.
$ minikube kubectl -- <kubectl commands>
즉 kubectl config get-clusters 를 실행하려면 다음처럼 입력하면 됩니다.
$ minikube kubectl -- config get-clusters
NAME
minikube
이렇게 사용하는 건 너무 불편하므로 alias 를 활용해서 minikube 환경에서도 kubectl 명령을 사용할 수 있습니다.
Linux & OSXLink to Linux & OSX
다음 명령어를 shell 초기화 파일(~/.bashrc, ~/.zshrc) 에 추가해 줍니다.
alias kubectl="minikube kubectl --"
설정이 끝났으면 반영하기 위해 다시 로그인하거나 설정 파일을 다시 읽기 위해 다음 명령을 실행합니다.
$ source ~/.bashrc
또는 링크를 생성하는 ln 명령어를 활용해도 됩니다.
$ sudo ln -sf $(which minikube) /usr/local/bin/kubectl
WINDOWS
다음 함수를 powershell 초기화 파일에 추가해 줍니다.
function kubectl { minikube kubectl -- $args }
확인 방법
설정이 잘 됐는지 확인하려면 직접 kubectl 명령을 실행해서 정상 동작 여부를 보면 됩니다.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
mariadb-1641174600-0 1/1 Running 0 51m
Leave a comment