Go&Kubernetes: 빠르게 발전하는 Golang 마이크로 서비스
원격 렌더링 및 Golang으로 클라우드 개발 환경 구축
Kubernetes는 하나의 서비스에서 수천 개의 서비스까지 모든 규모로 마이크로 서비스 프로그램을 배치하고 확장할 수 있는 용기 배열 플랫폼입니다.Kubernetes의 힘을 방출하는 것은 일반적으로 처음 보기보다 더 복잡하다. 응용 프로그램 개발자의 학습 곡선은 특히 가파르다.무엇을 해야 할지 아는 것은 성공의 절반에 불과하다. 그리고 가장 좋은 도구를 선택해서 이 일을 완성해야 한다.그렇다면 고 개발자는 어떻게 Kubernetes에서 신속하고 효과적인 개발 작업 흐름을 만듭니까?
Kubernetes에서 효율적인 개발 작업 흐름을 만들 때 응용 프로그램 개발자는 두 가지 독특한 도전에 직면한다.
1단계: 샘플 Microservices 어플리케이션 배포
우리의 예시에 따르면, 우리는 자원 집약형 자바 서비스와 대형 데이터 저장소 사이에서 실행되는 Go 서비스에 대해 코드 변경을 진행할 것이다.먼저 3개의 서비스로 구성된 샘플 마이크로서비스 애플리케이션을 구축합니다.
이 구조도에서 사용자의 요청이 입구 컨트롤러를 통해 저희 서비스로 연결되는 것을 알 수 있습니다.간단하게 보기 위해서 본 강좌에서 우리는 deploying an ingress controller의 절차를 건너뛸 것이다.원격 렌더링을 사용하여 직접 설치할 준비가 되어 있고 포털 컨트롤러를 설치하는 간단한 방법이 필요한 경우 Ambassador Edge Stack을 살펴보면 K8s Initializer을 손쉽게 구성할 수 있습니다.
Kubernetes 클러스터에 예제 애플리케이션을 배치합니다.
kubectl apply -f [https://raw.githubusercontent.com/datawire/edgey-corp-go/main/k8s-config/edgey-corp-web-app-no-mapping.yaml](https://raw.githubusercontent.com/datawire/edgey-corp-go/main/k8s-config/edgey-corp-web-app-no-mapping.yaml)
2단계: 현지 바둑 개발 환경 설정
DataProcessingService
서비스를 편집할 수 있는 로컬 개발 환경이 필요합니다.위의 아키텍처에서 보듯이 DataProcessingService
은 VeryLargeJavaService
과 VeryLargeDataStore
에 모두 의존하므로 이 서비스를 변경하기 위해 다른 서비스와 상호 작용해야 합니다.우리 시작합시다! git clone [https://github.com/datawire/edgey-corp-go.git](https://github.com/datawire/edgey-corp-go.git)
cd edgey-corp-go/DataProcessingService
go build main.go && ./main
10:23:41 app | Welcome to the DataProcessingGoService!
$ curl localhost:3000/color
“blue”
3단계: 원격으로 신속한 발전
컨테이너 이미지가 구축되고 저장소로 전송되며 Kubernetes 클러스터에 배치될 때까지 기다리지 않고Telepresence를 사용합니다.원격으로 로컬 개발과 Kubernetes 그룹 사이에 양방향 네트워크 연결을 만들어서 fast, efficient Kubernetes development을 지원합니다.
# Mac OS X
sudo curl -fL [https://app.getambassador.io/download/tel2/darwin/amd64/latest/telepresence](https://app.getambassador.io/download/tel2/darwin/amd64/latest/telepresence) -o /usr/local/bin/telepresence
#Linux
sudo curl -fL https://app.getambassador.io/download/tel2/linux/amd64/latest/telepresence -o /usr/local/bin/telepresence
$ sudo chmod a+x /usr/local/bin/telepresence
$ telepresence connect
$ curl -ik [https://kubernetes.default.svc.cluster.local](https://kubernetes.default.svc.cluster.local)
HTTP/1.1 401 Unauthorized
Cache-Control: no-cache, private
Content-Type: application/json
Www-Authenticate: Basic realm="kubernetes-master"
Date: Tue, 09 Feb 2021 23:21:51 GMT
위대하다원격 디스플레이를 성공적으로 설정했습니다.Kubernetes API 서버에 보내는 요청을 차단하고 인터넷이 아닌 그룹과 직접 연결하는 원격 디스플레이를 사용합니다.4. Golang 서비스 차단
차단은 원격으로 나타나는 루트 규칙이다.우리는 포트 3000에서 실행되는
DataProcessingService
의 로컬 버전이 아닌 DataProcessingService
의 루트를 차단할 수 있습니다. telepresence intercept dataprocessingservice — port 3000
원격으로 응용 프로그램에 직접 접근할 수 있습니다.http://verylargejavaservice:8080을 방문하십시오.마찬가지로 원격 디스플레이는 브라우저의 요청을 캡처하고 Kubernetes 그룹으로 직접 연결합니다.
원격 현장 환경에 대한 자세한 정보
오늘 우리는 Kubernetes에서 빠르게 반복적으로 실행되는 Golang 마이크로 서비스를 원격으로 어떻게 사용하는지 배웠다.현재 우리는 느린 로컬 개발 과정을 기다리지 않고 실시간 피드백 순환과 효율적인 클라우드 로컬 개발 환경을 통해 신속하게 교체할 수 있다.
트루에 대한 자세한 내용을 보려면 다음 리소스를 참조하십시오.
Reference
이 문제에 관하여(Go&Kubernetes: 빠르게 발전하는 Golang 마이크로 서비스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ambassadorlabs/go-kubernetes-rapidly-developing-golang-microservices-3nlf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)