728x90
<Docker 실습 :: 윈도우 Window에서 Docker 설치 과정>
- winget > kubectl > minikube 순으로 설치 예정
- winget: Microsoft가 개발한 윈도우 용 소프트웨어 설치 관리자
- Windows PowerShell에서 설치해야 함
1. winget 설치
PS C:\\Users\\admin> $progressPreference = 'silentlyContinue'
Write-Information "Downloading WinGet and its dependencies..."
Invoke-WebRequest -Uri <https://aka.ms/getwinget> -OutFile Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
Invoke-WebRequest -Uri <https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx> -OutFile Microsoft.VCLibs.x64.14.00.Desktop.appx
Invoke-WebRequest -Uri <https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.7.3/Microsoft.UI.Xaml.2.7.x64.appx> -OutFile Microsoft.UI.Xaml.2.7.x64.appx
Add-AppxPackage Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppxPackage Microsoft.UI.Xaml.2.7.x64.appx
Add-AppxPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
- winget 설치 확인
PS C:\\Users\\admin> winget --version
v1.6.3482
2. winget을 통해 DockerDesktop 설치
- DockerDesktop: 컨테이너화된 응용 프로그램을 개발, 테스트 및 배포하기 위한 도구
- 개발자들에게 손쉽게 컨테이너 기술을 활용할 수 있도록 도와주는 툴
PS C:\\Users\\admin> winget install e- --id Docker.DockerDesktop
>> 컴퓨터 껐다 켜면 Docker 설치 가능
3. 윈도우에 kubectl 설치
- kubectl: Kubernetes 클러스터와 상호 작용하기 위한 커맨드 라인 인터페이스 도구로, Kubernetes 클러스터를 관리하고, 애플리케이션을 배포하고, 모니터링
PS C:\\Users\\admin> winget install -e --id Kubernetes.kubectl
- 버전 확인
PS C:\\Users\\admin> kubectl version --client
Client Version: v1.29.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
PS C:\\Users\\admin> winget search kubectl
이름 장치 ID 버전 일치 원본
-----------------------------------------------------
kubectl Kubernetes.kubectl 1.29.0 winget
kubens ahmetb.kubens 0.9.5 Tag: kubectl winget
kubectx ahmetb.kubectx 0.9.5 Tag: kubectl winget
4. minikube 설치
- minikube: 로컬 환경에서 Kubernetes 클러스터를 실행하고 테스트하는 데 사용되는 도구
- 쿠버네티스를 로컬에서 실행할 수 있는 도구
- 단일 노드 구성으로 이중화가 보장되지 않기 때문에 상용에서는 사용 불가
- 로컬 가상 머신에 쿠버네티스를 구성하기 때문에 하이퍼바이저 설치 필요
- kubectl 사용
PS C:\\Users\\admin> winget install minikube
** 설치하고 나서 Windows PowerShell 터미널 새로 열어야 함 (환경변수가 변경되었기 때문에 적용하기 위해서는 새로운 터미널)
- minikube 시작
PS C:\\Users\\admin> minikube start
<Docker Desktop에서 확인 가능>
5. 터미널 프로그램 설치
PS C:\\Users\\admin> winget search termius
PS C:\\Users\\admin> winget install --id Termius.Termius
<간단한 Minikube 실습>
- Git Bash에서 Minikube 실행
admin@DESKTOP-4M8LFU2 MINGW64 ~
$ minikube start
admin@DESKTOP-4M8LFU2 MINGW64 ~
$ minikube status
W0214 11:09:40.130349 15808 main.go:291] Unable to resolve the current Docker CLI context "default": context "default": context not found: open C:\\Users\\admin\\.docker\\contexts\\meta\\37a8eec1ce19687d132fe29051dca629d164e2c4958ba141d5f4133a33f0688f\\meta.json: The system cannot find the path specified.
minikube
type: Control Plane
**host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured**
<명령어 모음>
1. kubectl version -o yaml: Kubernetes 클러스터의 버전 정보를 YAML 형식으로 출력
admin@DESKTOP-4M8LFU2 MINGW64 ~
$ kubectl version -o yaml
clientVersion:
buildDate: "2024-01-17T15:51:03Z"
compiler: gc
gitCommit: bc401b91f2782410b3fb3f9acf43a995c4de90d2
gitTreeState: clean
gitVersion: v1.29.1
goVersion: go1.21.6
major: "1"
minor: "29"
platform: windows/amd64
kustomizeVersion: v5.0.4-0.20230601165947-6ce0bf390ce3
serverVersion:
buildDate: "2023-10-18T11:33:18Z"
compiler: gc
gitCommit: a8a1abc25cad87333840cd7d54be2efaf31a3177
gitTreeState: clean
gitVersion: v1.28.3
goVersion: go1.20.10
major: "1"
minor: "28"
platform: linux/amd64
2. kubectl get pods: 현재 실행 중인 파드의 목록을 가져오는 Kubernetes CLI 명령어
admin@DESKTOP-4M8LFU2 MINGW64 ~
$ kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-5dd5756b68-f4g7g 1/1 Running 2 (11m ago) 22h
kube-system etcd-minikube 1/1 Running 2 (11m ago) 22h
kube-system kube-apiserver-minikube 1/1 Running 2 (11m ago) 22h
kube-system kube-controller-manager-minikube 1/1 Running 2 (11m ago) 22h
kube-system kube-proxy-4zgpq 1/1 Running 2 (11m ago) 22h
kube-system kube-scheduler-minikube 1/1 Running 2 (11m ago) 22h
kube-system storage-provisioner 1/1 Running 4 (11m ago) 22h
3. kubectl get namespaces: Kubernetes 클러스터 내의 모든 네임스페이스의 목록을 가져오는 명령
admin@DESKTOP-4M8LFU2 MINGW64 ~
$ kubectl get namespaces
NAME STATUS AGE
default Active 22h
kube-node-lease Active 22h
kube-public Active 22h
kube-system Active 22h
4. kubectl config use-context minikube: 현재 작업하는 Kubernetes 클러스터의 컨텍스트를 minikube로 변경하는 명령
- 여러 Kubernetes 클러스터에 접속할 때 사용
admin@DESKTOP-4M8LFU2 MINGW64 ~/.kube
$ kubectl config use-context minikube
Switched to context "minikube".
5. kubectl config get-contexts: 액세스할 수 있는 모든 Kubernetes 클러스터의 컨텍스트 목록을 가져오는 명령
admin@DESKTOP-4M8LFU2 MINGW64 ~/.kube
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* minikube minikube minikube default
6. Nginx 포드 생성
admin@DESKTOP-4M8LFU2 MINGW64 ~/.kube
$ **kubectl run nginx --image=nginx**
pod/nginx created
admin@DESKTOP-4M8LFU2 MINGW64 ~/.kube
$ **kubectl get pods
** 포드의 생성 및 상태 확인**
NAME READY STATUS RESTARTS AGE
nginx 1/1 **Running** 0 105s
7. minikube dashboard: 클러스터 내의 리소스 및 상태를 시각적으로 확인하고 모니터링할 수 있는 웹 기반 대시보드
admin@DESKTOP-4M8LFU2 MINGW64 ~/.kube
$ minikube dashboard
* 대시보드를 활성화하는 중 ...
- Using image docker.io/kubernetesui/metrics-scraper:v1.0.8
- Using image docker.io/kubernetesui/dashboard:v2.7.0
* Some dashboard features require the metrics-server addon. To enable all features please run:
minikube addons enable metrics-server
* Dashboard 의 상태를 확인 중입니다 ...
* 프록시를 시작하는 중 ...
* Proxy 의 상태를 확인 중입니다 ...
* Opening <http://127.0.0.1:50181/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/> in your default browser...
8. 포드 삭제 (kubectl delete pod nginx)
admin@DESKTOP-4M8LFU2 MINGW64 ~/.kube
**$ kubectl delete pod nginx**
pod "nginx" deleted
admin@DESKTOP-4M8LFU2 MINGW64 ~/.kube
$ kubectl get pods
No resources found in default namespace.
>> 삭제 확인
'클라우드 + DevOps > Docker' 카테고리의 다른 글
내가 보려고 정리한 Docker 명령어 : 자주 사용하는 명령어 정리 (0) | 2024.05.09 |
---|---|
Docker와 Kubernetes 소개 이론 정리 (0) | 2024.04.05 |
Docker 실습 :: Dockerfile 제작 후 이미지 생성 (0) | 2024.03.01 |
Docker 마운트 실습 :: 스토리지 드라이버 설정(--storage-opt)과 pquota 마운트 (0) | 2024.02.29 |
Docker 마운트 실습 :: 마운트를 이용한 NginX 로그 기록 관리 (1) | 2024.02.28 |