아래 트윗처럼 도커가 가격 정책을 변경했다. Docker Desktop은 기업내에서 더이상 무료가 아니다.
We're updating and extending our product subscriptions! New subscription tiers include Personal, Pro, Team, and Business. Details here: https://t.co/pyDetDKGjC #Docker #Subscriptions pic.twitter.com/Or8l6YoIUO
— Docker (@Docker) August 31, 2021
Kubernetes에서 애플리케이션을 실행해야 한다면 데스크탑에 Kubernetes를 설치하는 것이 매우 유용하고 Docker Desktop을 잘 써 왔었다.
이제 도커를 기업에서 사용하려면 구독을 해야하기에 대안을 모색해봤다. 본 글에서는 Docker Desktop 대체제를 조사했고 설치 및 설정에 대해서 다루고자 한다.
Rancher Desktop
Rancher Desktop은 Kubernetes 및 컨테이너 관리를 데스크탑에서 지원하는 오픈 소스 프로젝트이다.
Rancher Desktop은 아래의 기능을 제공한다.
- Kubernetes 버전 선택 가능
- Kubernetes를 업그레이드 및 테스트 지원
- 컨테이너를 실행하고 이미지를 빌드, 푸시 및 가져오기 지원
현재 Lima와 nerdctl은 GUI를 제공하지 않지만, Rancher Desktop은 Electron 기반의 GUI를 제공한다.
동작 원리
Rancher Desktop은 다른 도구를 매핑하는 방식으로 동작이 된다. MacOS 및 Linux 에서는 가상 머신을 활용하여 컨테이너 및 Kubernetes를 실행한다.
Rancher Desktop 설치
테스트한 환경이 Mac M1이기에 이 기준으로 작성한다.
Rancher Desktop 설치는 간단하다. Github release에 접속해 rancher-desktop-{version}-aarch64.dmg 파일을 다운로드 하고 설치 하면 된다.
설치 후 “Rancher Desktop” 앱을 실행하면, 아래의 화면이 나오고 본인 환경에 맞게 옵션을 선택하면 된다. 아래는 내가 선택한 옵션이다.
Kubernetes 버전 선택
기본적으로 Rancher Desktop은 Kubernetes의 버전을 선택할 수 있다. v1.16부터 원하는 Kubernetes 버전을 선택할 수 있다.
위 화면은 Mac용 Rancher Desktop의 Kubernetes 설정 화면이다. 여기서 사용하려는 Kubernetes 버전을 선택할 수 있다. 새 버전을 선택하면 Rancher Desktop은 버전에 필요한 모든 구성 요소를 다운로드하고 로컬 버전을 전환한다.
지원 툴 선택
helm, kubectl 및 nerdctl까지 필요한 유틸리티를 체크하면 사용할 수 있도록 설치해준다.
Images
k8s.io namespace에 기본적으로 설치되는 Image들이다.
Rancher Desktop 사용
Rancher Desktop이 실행되면 Kubernetes를 사용하는 것과 큰 차이가 없다. 터미널을 열어서 kubectl 명령어를 실행해보자.
giljae@giljae ~ % kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system helm-install-traefik-crd--1-vjx5n 0/1 Completed 0 15d
kube-system helm-install-traefik--1-zrd5f 0/1 Completed 1 15d
kube-system coredns-85cb69466-rzdnb 1/1 Running 2 (6m31s ago) 15d
kube-system svclb-traefik-lwdmn 2/2 Running 4 (6m31s ago) 15d
kube-system local-path-provisioner-64ffb68fd-fv9xl 1/1 Running 2 (6m31s ago) 15d
kube-system metrics-server-9cf544f65-5xcs7 1/1 Running 2 (6m31s ago) 15d
kube-system traefik-786ff64748-vgszv 1/1 Running 2 (6m31s ago) 15d
kube-image builder-t5lbz 2/2 Running 0 4m4s
Nginx 구동 시키기
nerdctl 명령어를 이용해서 nginx image를 pull한다.
giljae@giljae ~ % nerdctl pull nginx
docker.io/library/nginx:latest: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31: exists |++++++++++++++++++++++++++++++++++++++|
manifest-sha256:50ab7908620ee92646ddcd9fe321f969cdff672819fd9c8427448f67f59ef32e: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:eeb9db34b33190cac170b27d857e9b23511d396a2609c1a54e93025634afed0a: done |++++++++++++++++++++++++++++++++++++++|
elapsed: 2.1 s total: 0.0 B (0.0 B/s)
image가 존재하는지 확인해본다.
giljae@giljae ~ % nerdctl images nginx
REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE
nginx latest 0d17b565c37b 4 minutes ago linux/arm64/v8 142.4 MiB
command외에 rancher desktop app의 Images에서도 확인이 가능하다.
이제 Nginx를 구동 시켜보자. 간단하게 테스트 할 목적으로 daemon으로 구동하진 않았다.
giljae@giljae ~ % nerdctl run -p 8000:80 nginx
브라우저에서 확인해보자. (http://127.0.0.1:8000)
Rancher Desktop에 대한 자세한 내용은 여기를 참조하자.