Slicon M1 Mac에서 쿠버네티스 환경 구축하기 (feat. lima+minikube)
지난 글 에서는 Lima 를 활용하여 docker 개발환경을 구축해 보았고 이번에는 lima 를 minikube의 드라이버로 설정하여 쿠버네티스 개발환경을 구축해보기로 했다.
1. Lima 구동
limactl start
export DOCKER_HOST=unix://$HOME/docker.sock
docker ps
2. minikube 설치
brew install minikube
# docker 드라이버에 containerd를 컨테이너 런타임으로 사용하여 kube 환경구축
minikube start --driver=docker --container-runtime=containerd
3. minikube 실행 시, VM 메모리 부족 대응
VM 메모리 부족에러가 발생하는 경우 아래 두가지 방법 중 하나를 선택해서 실행한다.
1) 컨테이너 사이즈 설정 변경
minikube config set memory 2048
2) VM 메모리 재설정
VM 메모리를 재설정하기 위해 아래 내용을 ~/.lima/default/lima.yaml 에 추가 또는수정 후 VM 을 재시작 해준다.
# CPUs: if you see performance issues, try limiting cpus to 1.
# Default: 4
cpus: 4
# Memory size
# Default: "4GiB"
memory: "8GiB"
# Disk size
# Default: "100GiB"
disk: "100GiB"
4. minikube 구동 확인
5. minikube dashboard 설치 및 확인
# 애드온 설치 확인
minikube addons list
# 대쉬보드 설치
minikube addons enable dashboard
# 대쉬보드 실행
minikube dashboard
6. minikube 기본 명령어
Basic Commands:
start 로컬 쿠버네티스 클러스터를 시작합니다
status 로컬 쿠버네티스 클러스터의 상태를 가져옵니다
stop 실행 중인 로컬 쿠버네티스 클러스터를 중지합니다
delete 로컬 쿠버네티스 클러스터를 삭제합니다
dashboard minikube 클러스터 내의 쿠버네티스 대시보드에 접근합니다
pause 쿠버네티스를 잠시 멈춥니다
unpause 잠시 멈췄던 쿠버네티스를 재개합니다
Images Commands:
docker-env Configure environment to use minikube's Docker daemon
podman-env Configure environment to use minikube's Podman service
cache minikube에 로컬 이미지를 추가하거나 삭제, 푸시합니다
image Manage images
Configuration and Management Commands:
addons Enable or disable a minikube addon
config Modify persistent configuration values
profile Get or list the current profiles (clusters)
update-context Update kubeconfig in case of an IP or port change
Networking and Connectivity Commands:
service 서비스에 연결된 URL을 반환합니다
tunnel Connect to LoadBalancer services
Advanced Commands:
mount 특정 디렉토리를 minikube 에 마운트합니다
ssh (디버깅을 위해) minikube 환경에 접속합니다
kubectl 클러스터 버전에 맞는 kubectl 바이너리를 실행합니다
node 노드를 추가하거나 삭제, 나열합니다
cp Copy the specified file into minikube
Troubleshooting Commands:
ssh-key Retrieve the ssh identity key path of the specified node
ssh-host Retrieve the ssh host key of the specified node
ip 지정된 노드의 IP 주소를 가져옵니다
logs 로컬 쿠버네티스 클러스터를 디버그하기 위해 로그를 반환합니다
update-check 현재 그리고 최신 버전을 출력합니다
version minikube 의 버전을 출력합니다
options Show a list of global command-line options (applies to all commands).