ASP 설정 방법NET Core C#Kubernetes 마이크로 서비스 체계 구조, 로컬 Docker 데스크톱에서 Ingress 사용

이 안내서에서 원시 마이크로 서비스에 기반한 클라우드 구조를 만들 것입니다.그것은 사용한다.NET 커널, REST API는 백엔드 서비스에 있고 Angular는 프런트엔드입니다.모든 구성 요소는 고정되어 있으며, 쿠버네트스 조정 용기입니다.응용 프로그램은 입구 컨트롤러를 통해 공개된다.

Kubernetes runs in a local environment with docker desktop. It is similar to a cloud environment. You can use it for developing and testing. There are no extra costs. You can always easily deploy it later to the cloud.


구성 요소 개요:

컨텐트

  • ASP 구축NET 코어 REST-API 백엔드
  • 각도 프런트엔드 애플리케이션 생성
  • 장군.NET Core API 및 Angular 애플리케이션
  • Docker Desktop
  • 의 Kubernetes에 컨테이너 배치
  • 마지막 생각과 전망
  • 1. ASP를 구성합니다.NET 코어 REST-API 백엔드


    ASP를 사용하여 설치Visual Studio Community(무료).NET 및 웹 개발 작업량
    ASP를 만듭니다.NET Core 5.0 웹 API 프로젝트를 "DemoApi"라고 합니다.Docker를 활성화하고 Linux 설정을 사용합니다.HTTPS를 비활성화하려면 다음과 같이 하십시오.

    새 디렉터 "DemoController"를 추가합니다.Hello World 만 반환됩니다.

    포트 4200(개발) 및 80에서 Angular 응용 프로그램에 대한 CORS 활성화:





    시작 설정을 편집합니다.json은 DemoApi 구성의 URL을 포트 80으로 변경합니다.그런 다음 DemoApi 구성을 선택하고 시작합니다.



    브라우저에서 테스트:





    2. Create the Angular Frontend App


    다운로드 및 설치Node.js/NPM


    폴더 C:\dev\demo 만들기 및 명령 프롬프트 열기


    Angular 설치(안내서를 작성할 때 Angular 9 사용):



    C:\dev\demo>npm install -g @angular/cli
    

    프로그램 만들기:



    C:\dev\demo>ng new DemoApp
    

    자세히 보기: Understanding Angular and Creating Your First Application 중력정(Rob Tomlin)




    Call the REST-API


    C:\dev\demo\DemoApp\src\app의 코드 조정


    HttpClientModule을 응용 프로그램에 추가합니다.모듈ts:





    응용 프로그램에서 REST-API를 호출합니다.구성 요소ts:





    응용 프로그램에 불러온 데이터를 표시합니다.구성 요소html:





    Test the app


    안전을 확보합니다.NET 핵심 API가 실행 중입니다.Angular 응용 프로그램을 시작하고 브라우저에서 열어 모든 것이 정상인지 확인합니다:



    C:\dev\demo\DemoApp>ng serve
    

    데이터 "Hello World"를 불러오고 표시해야 합니다.





    3. Dockerize the .NET Core API and the Angular App


    docker 이미지를 만들고 실행하는 두 가지 방법을 보여 드리겠습니다.맞다NET 핵심 API, UI를 사용합니다.Angular 애플리케이션의 경우 명령줄을 클릭하십시오


    설치Docker Desktop for Windows


    Dockerize the .NET Core API


    Visual Studio DemoApi 프로젝트에서 프로젝트 브라우저의 파일 "Dockerfile"의 이름을 "Dockerfile"(첫 번째 소문자)로 변경합니다.그리고 Docker 파일을 마우스 오른쪽 단추로 클릭하고 [Docker 이미지 만들기]


    모든 것이 정상이라면 출력 생성을 확인하십시오:



    Visual Studio의 API 항목이 계속 실행 중이면, docker와 Visual Studio가 포트 80에 동시에 연결할 수 없기 때문에 중지하십시오./p>

    Docker 데스크톱 UI 및 맵 포트 80에서 "최신"demoapi 이미지 실행:




    진일보 읽기: How to deploy a .NET 5 API in a Kubernetes cluster 이만 보타


    Dockerize the Angular App


    파일 만들기 C:\dev\demo\DemoApp\dockerfile


    Make sure the file “dockerfile” has no file extension


    이 응용 프로그램은 NGI:





    파일 ".dockrignore"만들기 (시작 지점):





    명령 알림 문자를 열고 docker 그림을 만듭니다. (마지막 점은 중요합니다.)



    C:\dev\demo\DemoApp>docker build -t demoapp .
    

    Angular 애플리케이션이 계속 실행 중이면 중지하십시오.명령줄(한 줄의 전체 명령)을 사용하여 컨테이너에서 응용 프로그램을 시작하고 포트 4200:



    C:\dev\demo\DemoApp>docker run --publish 4200:80 --name demoappcontainer demoapp
    

    추가 읽기: Build and run Angular application in a Docker container 저자 Wojciech Krzywiec


    Test Both Containers


    용기를 표시할 수 있습니다. (용기 ID와 시간 스탬프가 다를 것입니다.)



    브라우저에서 프로그램 시작:



    이 안내서의 다음 단계에서 포트를 막지 않도록 두 용기를 정지합니다:



    C:\dev\demo\DemoApp>docker stop demoappcontainer
    C:\dev\demo\DemoApp>docker stop demoapi
    



    4. Deploy to Kubernetes on Docker Desktop


    Docker Desktop에서 Kubernetes:

    활성화


    NGINX 입구 컨트롤러 설치(명령줄의 한 줄에서):



    C:\dev\demo>kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.41.2/deploy/static/provider/cloud/deploy.yaml
    

    에 대한 자세한 정보는 NGINX Ingress Installation Guide


    C:\dev\demo\kubernetes를 만듭니다.아마르:





    yaml 적용:



    C:\dev\demo>kubectl apply -f kubernetes.yaml
    

    이것은 두 개의 Kubernetes' 배치 '를 만들고, 각각의 배치에' 서비스 '를 만들 것입니다.그리고 포트 80의 입구를 통해 이 두 서비스를 공개합니다


    에 대한 자세한 정보는 Kubernetes documentation


    첫 번째 배치는 DemoAPI 이미지와 두 개의 복사본을 사용하여 확장하는 방법을 보여 줍니다.두 번째 배포는 DemoApp의 단일 복제본을 사용합니다.포털은 경로 접두사에 따라 서비스로 라우팅됩니다.



    Test the Deployments


    "get deployments"(배치 가져오기) 는 배치와 POD의 수량을 표시합니다:



    포트 80에서 브라우저 열기(!)Kubernetes 배포 테스트:



    진일보 읽기: How to deploy a .NET 5 API in a Kubernetes cluster 이만 보타




    5. Final Thoughts and Outlook


    마이크로서비스 기반 클라우드 구조의 작업 기반을 만들었습니다.하지만 아직도 부족한 게 많아


    내 후속 게시물 및

    저는 앞으로의 게시물에서 더 많은 정보를 보여 드리겠습니다. 쿠버네트스의 비밀, SSL, 통신, 로그 기록, 디버깅, CI/CD, 키맵, (코드) 품질, (자동) 축소와 치유 등 안전 방면


    나의 다른 이야기가 어떤지 보자:



    질문, 생각 또는 건의가 있으면 저에게 연락하세요

    좋은 웹페이지 즐겨찾기