Kubernetes에서 파이썬 응용 프로그램 개발
Kubernetes에서 효율적인 개발 작업 흐름을 만드는 데는 두 가지 독특한 도전이 있다.
Telepresence는 로컬에서 마이크로 서비스를 실행할 수 있고 Kubernetes 그룹에 양방향 네트워크 연결을 만들 수 있는 소스 프로젝트입니다.이런 방법은 로컬에서 운행하는 마이크로 서비스로 하여금 집단에서 운행하는 다른 마이크로 서비스와 통신할 수 있게 한다. 반대로도 마찬가지다.로컬에서 마이크로 서비스를 실행하기 때문에 로컬에서 실행하는 모든 작업 흐름이나 도구에 접근할 수 있습니다. benefit
1단계: 샘플 Microservices 어플리케이션 배포
우리의 예시에 따르면, 우리는 자원 집약형 자바 서비스와 대형 데이터 저장소 사이에서 실행되는 Go 서비스에 대해 코드 변경을 진행할 것이다.먼저 3개의 서비스로 구성된 샘플 마이크로서비스 애플리케이션을 구축합니다.
VeryLargeJavaService
Java로 작성된 메모리 집약형 서비스로 응용 프로그램DataProcessingService
두 서비스 간의 정보 요청을 관리하는 데 사용되는 파이톤 서비스.VeryLargeDataStore
Edgey Corp 스토어의 샘플 데이터를 포함하는 대형 데이터 저장 서비스이 구조도에서 사용자의 요청이 입구 컨트롤러를 통해 저희 서비스로 연결되는 것을 알 수 있습니다.간단하게 보기 위해서 우리는 본 강좌deploying an ingress controller의 절차를 건너뛸 것이다.자신의 설정에서 원격 디스플레이를 사용하고 입구 컨트롤러를 설치하는 간단한 방법이 필요하다면 Ambassador Edge Stack를 보십시오. 쉽게 설정할 수 있습니다 K8s Initializer.
Kubernetes 클러스터에 예제 애플리케이션을 배치합니다.
kubectl apply -f https://raw.githubusercontent.com/datawire/edgey-corp-python/master/k8s-config/edgey-corp-web-app-no-mapping.yaml
주의: 이 강좌는 kubectl
를 통해 Kubernetes 그룹에 접근할 수 있다고 가정합니다.만약 당신이 없다면, Microk8과 Docker Kubernetes 등 몇 가지 옵션이 있습니다.2단계: 로컬 파이썬 개발 환경 설정
편집
DataProcessingService
서비스를 위한 로컬 개발 환경이 필요합니다.위의 구조도에서 보듯이 DataProcessingService
는 VeryLargeJavaService
와 VeryLargeDataStore
에 의존하기 때문에 이 서비스를 변경하기 위해 다른 서비스와 상호작용을 해야 합니다.우리 시작합시다!git clone https://github.com/datawire/edgey-corp-python.git
pip
어플리케이션 종속성 설치(Python 3이 설치되어 있으면 다음을 입력해야 할 수 있음pip3
:cd edgey-corp-python/DataProcessingService/
pip install flask requests
python3
.python app.py
curl localhost:3000/color
blue
3단계: 원격으로 코드 변경
Kubernetes 테스트 코드 변경을 사용하려면 보통 용기 이미지를 구축하여 이미지를 저장소로 전송한 다음 Kubernetes 그룹을 배치해야 합니다.몇 분 걸려요?
Telepresence는 클라우드 컴퓨팅의 기초 프로젝트로 이 문제를 마침 해결했다.로컬 개발 환경과 Kubernetes 그룹 간에 양방향 네트워크 연결을 만들면 원격 구현을 통해 빠른 로컬 개발을 실현할 수 있습니다.
# Mac OS X
sudo curl -fL 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
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단계: 차단 설정
차단은 원격으로 나타나는 루트 규칙이다.라우팅 클러스터에서 사용되는 트래픽을 캡처하고 포트 3000에서 실행되는 DataProcessing Service의 로컬 버전으로 모든 트래픽을 라우팅할 수 있습니다.
telepresence intercept dataprocessingservice --port 3000
DataProcessingService
를 열고 edgey-corp-python/DataProcessingService/app.py
를 DEFAULT_COLOR
에서 blue
로 변경합니다.파일을 저장합니다.원격 현장 환경에 대한 자세한 정보
일반적으로 Kubernetes를 사용하는 조직의 개발자들은 저효율 로컬 개발 환경에서 오는 느린 피드백 순환의 도전에 직면한다.오늘 우리는 원격으로 Kubernetes를 이용하여 신속하고 효율적인 개발 환경을 구축하고 유류 응용 프로그램의 실시간 피드백 순환으로 돌아가는 방법을 배웠다.
트루에 대한 자세한 내용을 보려면 다음 리소스를 참조하십시오.
Join our Slack channel 원격 구현 커뮤니티 연결
이 글은 최초로 발표되었다Python Pandemonium.
Reference
이 문제에 관하여(Kubernetes에서 파이썬 응용 프로그램 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ambassadorlabs/developing-python-applications-on-kubernetes-5339텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)