프로젝트 Tye를 사용하여 단순화합니다.NET 마이크로서비스 개발 경험(제2부)
9166 단어 microservicesdockerdotnet
쿠베르니토스의 명성을 알고 있을지도 몰라.나의 경험은 많은 사람들과 같다. 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 시스템에 설치
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가 요청할 것이 있습니다.redis:6379
을 입력하십시오. 같은 배치를 사용했다고 가정하십시오. (없으면 지정한 포트를 사용합니다.) docker login
을 만들어야 하지만, 당신의 경험은 다를 수 있습니다.분산 응용 프로그램의 경우
--interactive
로고를 사용하는 것은 Tye가 등록표를 알고 외부 의존(Redis)에 Kubernetes 암호를 등록할 수 있도록 하는 일회성 절차입니다.실행 후, 터미널에서 많은 기록된 활동을 볼 수 있습니다.다음은 일의 요점이다.
Deployment
과 Service
을 생성하고 이를 우리의 상하문 터미널에서
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 재구매)
Introducing Project Tye(Microsoft 블로그 게시물)
(.NET Conf - Facebook Micro Service)
Project Tye – easier development with .NET for Kubernetes(Christian Nagel)
Reference
이 문제에 관하여(프로젝트 Tye를 사용하여 단순화합니다.NET 마이크로서비스 개발 경험(제2부)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/daveabrock/use-project-tye-to-simplify-your-net-microservice-development-experience-part-2-59c6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)