윈도우 minikube Hello World 따라하기 ( feat. WSL )

2024. 4. 22. 11:20it

반응형

 

0. 기존 도커 이미지가 있어야 함. ( 아래 내 티스토리 참고해서 그대로 실행 하면 됨 ) 

해당 링크는 hello world를 웹 페이지를 보여주는 docker 임 

https://urame.tistory.com/entry/window-docker-%EB%AC%B4%EB%A3%8C-%EC%84%A4%EC%B9%98-feat-WSL-%ED%99%9C%EC%9A%A9

 

반응형

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hello World</title>
</head>
<body>
    <h1>Hello World!</h1>
    <p>This is my first Docker-based web page.</p>
</body>
</html>

 

 

1. 서론 

WSL(윈도우) 환경에서 Minikube를 사용하여 "Hello World" 웹 페이지를 호스팅하는 Docker 이미지를 만드는 전체 과정을 단계별로 설명하겠다. 이 과정은 이미 Minikube와 kubectl이 설치되어 있고, Minikube가 실행 중이라고 가정한다.

 

728x90

 

2. Docker 환경 설정

Minikube 내부의 Docker 환경을 사용하여 이미지를 빌드하고 사용할 수 있도록 설정한다. 

eval $(minikube docker-env)

 

3. Docker 이미지 빌드

cd ~/hello-world-web
docker build -t hello-world-web .

 

3. Kubernetes에 필요한 두개의 파일을 생성

Kubernetes에서 이미지를 실행하기 위해 Deployment와 Service를 생성 

 

 

3-1 Deployment 생성

vi deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-world-web
spec:
  replicas: 1
  selector:
    matchLabels:
      app: hello-world-web
  template:
    metadata:
      labels:
        app: hello-world-web
    spec:
      containers:
      - name: hello-world-web
        image: hello-world-web
        ports:
        - containerPort: 80

 

 

3-2. Service 생성

vi service.yaml
apiVersion: v1
kind: Service
metadata:
  name: hello-world-web
spec:
  type: NodePort
  ports:
  - port: 80
    nodePort: 30007
    protocol: TCP
  selector:
    app: hello-world-web

 

 

4. Deployment, Service를 배포 

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

 

 

5. 애플리케이션 접근 

아래 명령어를 날리면 주소가 나온다. 해당 주소를 복사 붙여넣기 하면, 아래와 같은 hello world를 볼 수 있다.

minikube service hello-world-web --url

 

 

 

 

6. 대시보드에서 해당 작업 수행 여부 확인

minikube dashboard

 

 

 

7. 모든 서비스 삭제

해당 서비스는 deployment와 service 에 작성한 labels를 보고 작동한다. ( 해당 라벨 모두 삭제 ) 

kubectl delete all -l app=hello-world-web
반응형