Skip to content

Minzino/kind-guide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kind 가이드

로컬 쿠버네티스(kind) 환경 구축 및 애플리케이션 배포 가이드입니다.

🚀 최종 목표

  1. 다중 노드(Multi-node) 쿠버네티스 클러스터를 로컬에 구축한다.
  2. k9s를 사용하여 클러스터 상태를 직관적으로 모니터링한다.
  3. 샘플 NestJS 애플리케이션을 컨테이너화하고, **데이터를 영속적으로 저장(PV/PVC)**한다.
  4. Helm을 사용해 애플리케이션을 쿠버네티스에 배포한다.
  5. 외부(로컬 머신)에서 애플리케이션에 접속한다.
  6. 환경 변수, ConfigMap, Secret을 사용하여 애플리케이션 설정을 관리한다.
  7. RBAC를 통해 쿠버네티스 리소스 접근 권한을 제어한다.
  8. 실습 과정에서 사용된 쿠버네티스의 핵심 개념을 명확히 이해한다.

📖 가이드 맵

이 가이드는 각 단계별로 상세한 설명을 담은 별도의 문서로 구성되어 있습니다.


🏃‍♂️ 빠른 시작 (Quick Start)

이미 개념에 익숙하다면 아래 명령어로 빠르게 시작할 수 있습니다.

  1. 클러스터 생성:

    # kind-config.yaml 파일에서 extraPortMappings를 제거했습니다.
    kind create cluster --name nest-app-cluster --config kind-config.yaml
  2. Ingress Controller 설치 및 포트 포워딩:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
    kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=120s
    # Ingress Controller 파드 이름 확인 (예: ingress-nginx-controller-xxxxxxxxxx-yyyyy)
    # kubectl get pods -n ingress-nginx -l app.kubernetes.io/component=controller -o name
    # 로컬 8080 포트로 포워딩 (백그라운드 실행)
    # kubectl port-forward -n ingress-nginx pod/<YOUR_INGRESS_CONTROLLER_POD_NAME> 8080:80 &
  3. Docker 이미지 빌드 및 로드:

    docker build -t my-nest-app:1.0.0 ./nest-app
    kind load docker-image my-nest-app:1.0.0 --name nest-app-cluster
  4. Helm 배포:

    helm install my-nest-app ./helm/my-nest-app
  5. 접속 확인:

    # /etc/hosts 파일에 "127.0.0.1 my-nest-app.local" 추가 후
    curl http://my-nest-app.local:8080
    # 또는 Host 헤더를 명시하여 접속
    # curl -H "Host: my-nest-app.local" http://127.0.0.1:8080
  6. 클러스터 삭제:

    kind delete cluster --name nest-app-cluster

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published