Kubernetes에 Angular 애플리케이션 배포

전제 조건:
Nodejs가 설치되었습니다.
도커가 설치되었습니다.
쿠버네티스가 설치되었습니다.

1단계: 각도 응용 프로그램 만들기
아래 명령을 사용하여 Angular CLI 설치

npm install -g @angular/cli


아래 명령은 Angular 애플리케이션을 만드는 데 도움이 됩니다.

ng new hello-world


또는 내 저장소에서 복제할 수 있습니다link.

이제 hello-world 디렉토리로 이동하여 아래 명령을 사용하여 로컬 서버를 실행합니다.

ng serve


기본적으로 애플리케이션은 포트 번호 4200에서 실행됩니다. 이것을 사용하여 브라우저에서 테스트할 수 있습니다link.

2단계: 프로덕션 환경에서 애플리케이션 빌드
루트 디렉토리에 dist 폴더를 생성하는 아래 명령을 실행합니다.

ng build --prod




3단계: DockerFile 생성
dist 폴더에서 nginx 경로로 파일을 복사해야 합니다.

FROM nginx:alpine
COPY ./dist/hello-world ./usr/share/nginx/html


4단계: DockerFile 빌드
Dockerfile을 생성한 디렉토리로 이동하여 아래 명령어를 입력합니다.

docker build -t angular/hello-world:v1 .



빌드 프로세스가 완료되면 아래 명령으로 도커 이미지를 확인할 수 있습니다.

docker ps -a


5단계: Kubernetes 배포 포드 생성
내 github 저장소에서 배포 파일을 얻을 수 있습니다link.

kubectl apply -f deployment.yaml




위의 YAML에 대한 간략한 설명:
  • 배포 파일에 대한 샘플 템플릿은 공식site에서 찾을 수 있습니다.
  • apiVersion은 kubernetes의 버전을 정의합니다.
  • 종류는 배포, 서비스, 작업 등인 경우 유형을 나타냅니다.
  • 메타데이터는 배포 이름입니다.
  • spec.template.spec.containers 아래에서 도커 이미지의 이름을 언급해야 합니다.
    이 예에서는 Docker 이미지를 레지스트리에 푸시하지 않았습니다. 따라서 imagePullPolicy: Never를 언급해야 합니다. 언급되지 않은 경우 kubernetes는 도커 레지스트리에서 이미지를 가져오려고 시도합니다.
  • containerPort는 배포를 실행해야 하는 포트를 알려줍니다.

  • 6단계: 서비스 생성
    내 github 저장소에서 서비스 파일을 얻을 수 있습니다link.
    아래 명령어를 입력하여 서비스 포드를 생성합니다.

    kubectl apply -f service.yaml
    




    서비스 포드는 spec.selector.app에 언급된 배포 이름을 기반으로 애플리케이션에 연결하는 데 도움이 됩니다.

    배포 확인

    kubectl get all
    




    7단계: 최종 단계 - 포트 포워딩
    이는 요청을 애플리케이션으로 전달하는 데 도움이 됩니다.

    kubectl port-forward <service-name> <expose port no>:<service port num>
    



    이제 브라우저로 이동하여 ( http://localhost:80 )를 눌러 확인하십시오. 웹 애플리케이션에 액세스할 수 있어야 합니다.

    좋은 웹페이지 즐겨찾기