일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- network namespace
- ALB
- containerd
- calico
- kubernets
- vscode
- kubernetes
- 도커
- Docker
- 워커노드
- ubuntu
- nested virtualization
- ansible
- 코어 쿠버네티스
- curl
- go
- 묘공단
- passwd
- 네트워크 네임스페이스
- web ide
- Pane
- Kind
- code-server
- 중첩가상화
- 패스워드 재설정
- WSL
- 컨테이너
- 쿠버네티스
- windows
- 504
- Today
- Total
a story
wsl: docker, kind 설치 본문
WSL(Windows Subsystem for Linux) 환경에서 kind를 실행하기 위해 필요한 패키지들을 설치한다.
docker 설치
참고로 Microsoft 공식 문서의 가이드에서는 docker desktop 에 대한 설치 가이드만 있다.
https://learn.microsoft.com/ko-kr/windows/wsl/tutorials/wsl-containers
단순히 docker 인스턴스를 설치하기 위해 아래를 참고한다.
https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository
apt 리포지터리 설정한다.
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
docker 설치한다.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
다만 이렇게 해도 docker 명령을 수행해보면 아래와 같이 에러가 발생하는 것을 알 수 있다.
# docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
# systemctl status docker
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
기본적으로 systemd에서 docker를 실행해 줄 것으로 기대하지만, wsl에서는 기본적으로 systemd 가 실행되지 않기 때문에 아래와 같이 /etc/wsl.conf 를 작성한다.
https://learn.microsoft.com/ko-kr/windows/wsl/systemd
[boot]
systemd=true
참고로, 위 방법이 제대로 동작하지 않는다면 사전에 wsl --update를 수행해야 할 수 있다. (WSL 버전이 0.67.6 이상)
> wsl --update
설치 중: Linux용 Windows 하위 시스템
[==========================59.0%=== ]
Linux용 Windows 하위 시스템이(가) 설치되었습니다.
이제 사용 가능하다.
# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-11-05 12:52:49 KST; 23s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 397 (dockerd)
Tasks: 14
Memory: 102.7M
CGroup: /system.slice/docker.service
└─397 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.436289714+09:00" level=info msg="Loading contai>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.537940657+09:00" level=info msg="Loading contai>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574554915+09:00" level=warning msg="WARNING: No>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574608315+09:00" level=warning msg="WARNING: No>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574617075+09:00" level=warning msg="WARNING: No>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574621785+09:00" level=warning msg="WARNING: No>
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574642268+09:00" level=info msg="Docker daemon">
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.574820321+09:00" level=info msg="Daemon has com>
Nov 05 12:52:49 DESKTOP-UN5DI0K systemd[1]: Started Docker Application Container Engine.
Nov 05 12:52:49 DESKTOP-UN5DI0K dockerd[397]: time="2023-11-05T12:52:49.609024013+09:00" level=info msg="API listen on >
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
설치 확인
sudo docker run hello-world
아래와 같은 결과를 얻는다면 정상이다.
# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:88ec0acaa3ec199d3b7eaf73588f4518c25f9d34f58ce9a0df68429c5af48e8d
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
kind 설치
kind는 docker에 컨테이너로 노드를 실행 시켜서 kuberentes를 실행하므로써 로컬 환경에서 kubernetes 테스트를 가능케하는 도구이다.
아래를 참고한다.
https://kind.sigs.k8s.io/docs/user/quick-start/#installation
# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
# For ARM64
[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
실제로 kind는 바이너리에 불과함을 알 수 있다.
kind로 클러스터를 생성하면, 아래와 같이 컨테이너 이미지가 각 노드 처럼 실행되는 것을 알 수 있다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e9d61cb5b472 kindest/node:v1.27.3 "/usr/local/bin/entr…" 8 hours ago Up 8 hours 127.0.0.1:44423->6443/tcp calico-control-plane
1d481afc16a6 kindest/node:v1.27.3 "/usr/local/bin/entr…" 8 hours ago Up 8 hours calico-worker
kind로 로컬 환경에서 kubernetes 를 테스트 해보기 위해 docker와 kind를 설치했다.
kind 실제 사용은 앞으로 작성될 블로그를 참고할 수 있다.
'기타' 카테고리의 다른 글
VS Code에서 REST 테스트 하기 (0) | 2023.11.05 |
---|---|
curl 에 timeout 주기 (0) | 2023.10.04 |
개행문자(\n)를 줄바꿈으로 변환하기 (0) | 2022.03.19 |
Browser IDE, code-server 사용해보기 (0) | 2022.03.18 |
Windows 에서 ubuntu 의 x window 띄우기 (우분투 GUI 띄우기) (0) | 2022.02.11 |