본문 바로가기
소프트웨어 & 클라우드/Kubernetes

[kubernetes] k8s Docker Desktop 활용하여 windows wsl 에서 빌드하기

by TaeGyeong Lee 2024. 11. 17.

개요 

windows Docket Desktop 어플리케이션을 사용해 kubernetes 운용 환경을 구축하는 방법을 안내합니다. 이 글의 주된 목적은 kubernetes 플랫폼을 개발, 수정하여 테스트 하기 위함입니다. 참고 부탁드립니다. 

 

wsl 설치

wsl을 설치하지 않은 경우 아래 글을 통해 wsl을 설치해 주세요. 

 

WSL 설치

wsl --install 명령을 사용하여 Linux용 Windows 하위 시스템을 설치합니다. Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine 등 원하는 Linux 배포판에서 실행되는 Windows 머신에서 Bash 터미널을 사용할 수 있습니

learn.microsoft.com

 

Docket Desktop 다운로드 

아래 링크에서 본인의 컴퓨터에 적합한 버전을 다운로드 하세요. 

 

Docker Desktop: The #1 Containerization Tool for Developers | Docker

Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.

www.docker.com

 

Docker Desktop과 WSL 연결 세팅

Docket Desktop 설치를 완료하였으면 이제 kubernetes 를 세팅해야 합니다. 톱니바퀴 아이콘을 클릭해 주세요. 

 

wsl 이 설치되어 있다면 General > User the WSL 2 based engine 항목이 체크되어 있을 겁니다. wsl을 설치하지 않았으면 설치해 주세요. 

 

wsl 과 Docker Desktop 연결 확인

아래와 같이 Settings > Resources > WSL intergration > Enable Intergration with my default WSL distro 항목이 체크되어 있는 지 확인하세요. 

 

cmd 에서 Docker Desktop 연결 확인 

cmd에서 아래 명령을 통해 docker-deskop 이 인식되는 지 확인하세요. 

wsl.exe -l -v

 

kubernetes 레포지토리 빌드

경고
cmd는 관리자 권한으로 실행 해주세요 ! 그래야 빌드가 가능합니다. 

아래 명령을 통해 wsl에서 kubernetes 레포지토리를 클론합니다. 클론 후 해당 폴더로 들어갑니다.

git clone https://github.com/kubernetes/kubernetes.git
cd kubernetes

 

kubernetes를 빌드하기 위해 필요한 패키지 설치를 안했다면 아래 명령을 통해 패키지를 설치해 주세요.

sudo apt-get update
sudo apt-get install -y git make golang-go

 

아래 명령을 통해 빌드를 시도하세요.

build/run.sh make

 

빌드가 성공적으로 진행되면 Docker Desktop에서 실시간으로 빌드에 따른 결과를 확인할 수 있습니다. 

 

참고) Kubernetes 빌드 에러 조치 

아래와 같이 VCS 관련 문제가 발생하면

error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
error obtaining VCS status: exit status 128
        Use -buildvcs=false to disable VCS stamping.
!!! [1226 19:14:06] Call tree:
!!! [1226 19:14:06]  1: /go/src/k8s.io/kubernetes/hack/lib/golang.sh:824 kube::golang::build_some_binaries(...)
!!! [1226 19:14:06]  2: /go/src/k8s.io/kubernetes/hack/lib/golang.sh:983 kube::golang::build_binaries_for_platform(...)
!!! [1226 19:14:06]  3: hack/make-rules/build.sh:28 kube::golang::build_binaries(...)
!!! [1226 19:14:06] Call tree:
!!! [1226 19:14:06]  1: hack/make-rules/build.sh:28 kube::golang::build_binaries(...)
make: *** [Makefile:97: all] Error 1
!!! [1226 19:14:06] Call tree:
!!! [1226 19:14:06]  1: ./build/../build/common.sh:490 kube::build::run_build_command_ex(...)
!!! [1226 19:14:06]  2: ./build/run.sh:39 kube::build::run_build_command(...)

 아래와 같이 명령 후 다시 빌드를 시도해 주세요. 

export GOFLAGS="-buildvcs=false"
./build/make-clean
./build/run.sh make

 

참고 자료 

 

WSL

Turn on the Docker WSL 2 backend and get to work using best practices, GPU support, and more in this thorough guide.

docs.docker.com

 

Use WSL

How to develop with Docker and WSL 2 and understand GPU support for WSL

docs.docker.com

 

WSL+Docker: Kubernetes on the Windows Desktop

Introduction New to Windows 10 and WSL2, or new to Docker and Kubernetes? Welcome to this blog post where we will install from scratch Kubernetes in Docker KinD and Minikube. Why Kubernetes on Windows? For the last few years, Kubernetes became a de-facto s

kubernetes.io