프로젝트 Tye를 사용하여 단순화합니다.NET 마이크로서비스 개발 경험(제2부)

이전 글에서 나는 introduced Project Tye을 제시했다. 그것이 무엇인지, Blazor가 구동하는 계기판, 감시 서비스, 의존항 추가, 선택할 수 있는 프로필 사용.내가 보기에 이 글의 내용만으로도 Tye는 해볼 만하지만, 커다란 용례는 컨테이너화 응용 프로그램의 복잡성을 해결하고 배치 장면을 간소화할 수 있다.
쿠베르니토스의 명성을 알고 있을지도 몰라.나의 경험은 많은 사람들과 같다. bewildering at first, but ultimately beneficial.우리 중 많은 사람들에게 우리는 Kubernetes를 이용하고 싶다. 자신이 전문가라고 걱정할 필요도, 설정에 몇 시간(또는 며칠)을 들일 필요도 없다.
본고에서 Tye 프로젝트가 용기화 응용 프로그램을 Kubernetes에 쉽게 배치하는 데 도움을 줄 수 있는 방법을 연구하고자 합니다.지난 문장과 마찬가지로 당신이 가장 좋아하는 단말기를 시작합니다. 시작합시다.
Docker는 a technology으로 컨테이너에 응용 프로그램을 배치하고 실행할 수 있습니다.Kubernetes is a system을 사용하면 노드를 뛰어넘어 컨테이너화된 응용 프로그램을 관리할 수 있습니다.의미가 없으면 Docker 및 Kubernetes 문서를 참조하여 자세한 내용을 확인하십시오.쿠버넷과 도크에 대한 깊은 토론은 본문의 범위를 넘어섰다.
저희가 시작하기 전에, 당신이 .NET Core 3.1 SDK installed을 가지고 있는지 확인하십시오.만약 네가 이렇게 하지 않는다면, 너는 멀리 가지 않을 것이다.

시작 전 사전 요구 사항


재미있는 사실: Tye를 빠르게 시작하고 실행하려면 tye run을 실행할 수 있습니다. 프로그램을 용기화할 염려는 없습니다.마지막 문장에서 간단함을 유지하기 위해서, 이것이 바로 우리가 한 일이다.(원한다면 tye build을 실행하여 응용 프로그램에 용기를 구축할 수 있습니다.)
이제 우리는 용기를 응용 프로그램에 진정으로 활용할 때가 됐다는 충분한 위험을 알게 되었다.타이 프로젝트는 우리에게 많은 짐을 가져다 줄 것이지만, 우리는 여전히 타이가 기적을 창조할 준비를 해야 한다.
Project Tye를 배포하기 전에 다음이 필요합니다.

  • Docker 시스템에 설치
  • 스토리지 컨테이너의 레지스트리 Docker는 기본적으로 DockerHub를 사용하거나 Azure Container Registry과 유사한 것을 사용할 수 있습니다.
  • Kubernetes 클러스터(AKS, Docker의 Kubernetes, Minikube 등)
  • 우리는 지금 마지막 두 단계를 집행할 것이다.

    ACR 및 AKS 인스턴스 작성


    Tye가 사용할 수 있도록 컨테이너 레지스트리와 Kubernetes 클러스터가 필요합니다.저는 Azure 컨테이너 등록표(ACR)와 Azure Kubernetes 서비스(AKS)를 사용할 것입니다. 이 두 가지 모두 Azure 서비스입니다.다음은 어떻게 설정되었습니까?(등록표와 집단이 준비되어 있다면 이 섹션을 건너뛰십시오.)
    Azure Portal에서 "container"를 검색한 다음containerregistries를 누르십시오.그런 다음 + 추가 를 클릭하여 새 레지스트리를 만듭니다.
    컨테이너 레지스트리 만들기 화면에서 구독, 리소스 그룹, 고유 레지스트리 이름, 위치 및 SKU를 입력합니다.기본 SKU는 우리의 목적에 부합해야 한다.완료되면 보기 + 만들기 를 클릭한 다음 만들기 를 클릭합니다.

    이제 AKS 인스턴스를 만들려고 합니다.Azure 포털 화면 상단의 검색 표시줄에서 "aks"를 검색하고 Kubernetes 서비스를 누르십시오.구독, 자원 그룹, 그룹 이름, 나머지 기본값을 수락하고 수락합니다.

    자원을 만들지 마세요!
    그런 다음 통합 탭으로 이동합니다.중요: 드롭다운 목록에서 새로 만든 레지스트리를 선택한 다음 보기 + 만들기 를 클릭한 다음 만들기 를 클릭합니다.자원 생성을 완료하는 데 몇 분이 걸립니다.

    Kubernetes 명령줄 도구 kubectl은 클러스터에 대해 알아야 합니다.이를 위해 로컬 시스템에서 the Azure CLI으로 전화하십시오. (먼저 az login 또는 az acr login --name {registry_name}으로 전화해야 할 수도 있습니다. 후자를 먼저 전화해야 합니다.
    az aks get-credentials --resource-group {resource-group} --name {cluster-name}
    
    완료되면 kubectl config view을 실행하여 로컬 Kubernetes 구성을 보고 검증할 수 있습니다.이 두 명령은 모두 편리한 화면 캡처에 있다.

    우리 스스로 의존 관계를 배치하다


    지난 글에서 Redis에 대한 우리의 의존을 기억하십니까?우리는 반드시 스스로 배치해야 한다.왜 태이는 우리를 위해 이 일을 하지 않습니까?일부러 그런 거야.의존항은 의존항입니다. 포트와 연결 문자열이 설정되어 있을 수도 있습니다.이미 설정한 경우이므로 Tye가 가정하거나 새 인스턴스를 만들 필요가 없습니다.
    the Tye introductory post from Microsoft을 대여하면 kubectl apply을 사용하여 Tye의 GitHub에서 기존 구성을 가져옵니다.
    kubectl apply -f https://raw.githubusercontent.com/dotnet/tye/master/docs/tutorials/hello-tye/redis.yaml
    

    우리의 첫 번째 배치


    우리는 이미 우리의 첫 번째 배치를 시도할 준비가 되어 있다.tye deploy을 실행하기 전에 주의해야 할 것은, Tye는 기존의 증빙서류를 사용하여 Docker로 전송하고 Kubernetes 집단에 접근할 것입니다. 따라서 아무것도 하지 않으면 Tye는 기존의 상하문을 사용합니다.
    네가 맞혔어, 이것은 tye deploy에 의해 완성된 거야.이것은 처음입니다. --interactive 로고를 추가해야 합니다.이것을 사용하면 Tye가 요청할 것이 있습니다.
  • 용기 등록표 - myregistry를 입력합니다.azurecr.io(ACR을 사용하는 경우) 또는 dockerhub
  • 의 사용자 이름
  • redis의 연결 문자열 - redis:6379을 입력하십시오. 같은 배치를 사용했다고 가정하십시오. (없으면 지정한 포트를 사용합니다.)
  • 그것이 작용하기 위해서는 docker login을 만들어야 하지만, 당신의 경험은 다를 수 있습니다.
    분산 응용 프로그램의 경우 --interactive 로고를 사용하는 것은 Tye가 등록표를 알고 외부 의존(Redis)에 Kubernetes 암호를 등록할 수 있도록 하는 일회성 절차입니다.
    실행 후, 터미널에서 많은 기록된 활동을 볼 수 있습니다.다음은 일의 요점이다.
  • 프로젝트 발표
  • 은 각 프로젝트에 Docker 이미지를 구축하여 등록표
  • 으로 전송합니다.
  • 그룹에서 이미지 추출
  • 목록 작성 및 서비스 정의
  • 은 각 프로젝트에 Kubernetes DeploymentService을 생성하고 이를 우리의 상하문
  • 에 응용합니다
    터미널에서 kubectl get pods을 실행하면 모든 것을 확인할 수 있습니다.다음은 내가 본 것이다.
    NAME READY STATUS RESTARTS AGE
    marvel-api-6d479df46d-hlmrp 1/1 Running 0 9m
    marvel-web-744dbb6bf8-98d4g 1/1 Running 0 9m
    redis-58897bf8c-p72tz 1/1 Running 0 13m
    
    Microsoft는 TLS가 클러스터에서 자동으로 활성화되지 않으므로 HTTP를 통해 트래픽이 발생합니다.팀에서 TLS를 미래에 사용하기를 원할 수도 있습니다.
    참고로 필요하면 tye.yaml 파일에 등록표를 포함하여 --interactive 절차를 막을 수 있습니다.파일에 포함시키기만 하면 됩니다.
    registry: {my-registry-name}
    
    이런 맞춤형 제작은 CI/CD 장면에 매우 적합하다.

    어플리케이션에 액세스하기 위한 포트 전달


    우리는 배치를 끝냈다!그렇다면, 우리는 어떻게 우리의 응용 프로그램에 접근합니까?Kubernetes 클러스터 외부에서 웹 응용 프로그램에 액세스하기를 원합니다.이를 위해 Kubernetes CLI의 포트를 사용하여 전달합니다.
    kubectl port-forward svc/marvel-web 5000:80
    
    우리는 장사를 하고 있다!Tye 프로젝트는 AKS에 애플리케이션을 배치합니다.만약 당신이 http://localhost:5000을 조회한다면, 우리의 신뢰할 만한 응용 프로그램은 이미 시작되고 실행되었을 것입니다!클러스터에 적용되는 Application Insights를 수시로 확인하여 실제 상황을 확인하십시오.
    "simple"과 "Kubernetes"가 같은 문장을 거의 공유하지 않는 세계에서 tye 프로젝트는 tye.yaml개의 파일만 있으면 이 점을 할 수 있다.Tye는 모든 환경 변수를 설정하여 모든 서비스가 서로 통신할 수 있도록 할 수 있습니다.

    정리하다


    사용 후 정리를 수행하려면 다음과 같이 하십시오.

  • Tye 배포 삭제 - 실행 tye undeploy(미리 보기 실행 tye undeploy --what-if)

  • Redis 배포 삭제 - kubectl delete deployment/redis svc/redis 실행

  • AKS 클러스터 제거 - Azure CLI에서 az aks delete --name {my-cluster} --resource-group {my-resource-group} 실행
  • 끝내다


    본고에서 우리는 Azure 용기 등록 센터(ACR)와 Azure Kubernetes 서비스(AKS) 실례를 만들고 외부 의존항을 배치하며 우리의 응용 프로그램을 Tye 프로젝트에서 Kubernetes로 배치했다.그리고 우리는 포트 전송을 사용하여 집단 밖에서 로컬로 응용 프로그램을 실행할 수 있는 능력을 제공한다.
    나는 너희들이 이 두 부분으로 구성된 타이 프로젝트를 소개하는 시리즈를 좋아하길 바란다.나는 그것이 매우 간단하다는 것을 깨달았다. 단지 두 개의 응용 프로그램과 하나의 의존항만 있는데, 이것은 고의적인 것이다.Tye가 발전함에 따라 저는 복잡한 현실 세계 응용 프로그램에 대해 더욱 깊이 있게 발굴하고 디버깅을 하고 싶습니다.아직 시기상조입니다. 하지만 이 강력한 도구가 중소 서비스 개발의 많은 번거로움을 없애는 것을 보셨으면 합니다.NET, 이것이 바로 네가 요구할 수 있는 것이다.

    공구서류


    본문을 작성하는 데 도움이 되는 내용 및 추가 정보:

  • Project Tye(GitHub 재구매)
  • Tye releases
  • Tye samples
  • Recipes

  • Introducing Project Tye(Microsoft 블로그 게시물)

  • (.NET Conf - Facebook Micro Service)

  • Project Tye – easier development with .NET for Kubernetes(Christian Nagel)
  • Kubernetes docs
  • Docker docs
  • 좋은 웹페이지 즐겨찾기