Kubernetes에서 파이썬 응용 프로그램 개발

Kubernetes는 클라우드 프로그램을 실행하는 사실의 표준이 되었다.Kubernetes를 사용하면 사용자는 모든 규모로 용기화 프로그램을 배치하고 확장할 수 있습니다. 하나의 서비스에서 수천 개의 서비스까지.Kubernetes의 힘은 공짜가 아니다. 학습 곡선이 특히 가파르다. 특히 응용 프로그램 개발자들에게는.무엇을 해야 할지 아는 것은 성공의 절반에 불과하다. 그리고 가장 좋은 도구를 선택해서 이 일을 완성해야 한다.그렇다면 파이썬 개발자는 어떻게 Kubernetes에서 신속하고 효과적인 개발 작업 흐름을 만듭니까?
Kubernetes에서 효율적인 개발 작업 흐름을 만드는 데는 두 가지 독특한 도전이 있다.
  • 대부분의 개발 작업 흐름은 로컬 개발을 대상으로 최적화되었고 Kubernetes 응용 프로그램의 디자인은 클라우드 컴퓨팅을 대상으로 한다.
  • 대부분의 Kubernetes 응용 프로그램은 시작하거나 마이크로 서비스 체계 구조로 변한다.따라서 모든 마이크로 서비스가 테스트 코드에 추가 의존항을 추가하면서 개발 환경이 더욱 복잡해집니다.반대로 이것services quickly become too resource-intensive도 현지 기계의 제한을 넘어섰다.
  • 이 자습서에서는 Kubernetes에 현실적인 개발 환경을 설정하는 방법을 소개합니다.일반적으로, 우리는 용기가 구축되고, 등록표에 전송되고, 배치되기를 기다려야만 변경의 영향을 볼 수 있다.반대로 우리는 임장감을 사용하고 우리가 바뀐 결과를 즉각 볼 것이다.
    Telepresence는 로컬에서 마이크로 서비스를 실행할 수 있고 Kubernetes 그룹에 양방향 네트워크 연결을 만들 수 있는 소스 프로젝트입니다.이런 방법은 로컬에서 운행하는 마이크로 서비스로 하여금 집단에서 운행하는 다른 마이크로 서비스와 통신할 수 있게 한다. 반대로도 마찬가지다.로컬에서 마이크로 서비스를 실행하기 때문에 로컬에서 실행하는 모든 작업 흐름이나 도구에 접근할 수 있습니다. benefit

    1단계: 샘플 Microservices 어플리케이션 배포


    우리의 예시에 따르면, 우리는 자원 집약형 자바 서비스와 대형 데이터 저장소 사이에서 실행되는 Go 서비스에 대해 코드 변경을 진행할 것이다.먼저 3개의 서비스로 구성된 샘플 마이크로서비스 애플리케이션을 구축합니다.
  • VeryLargeJavaService Java로 작성된 메모리 집약형 서비스로 응용 프로그램
  • 에 프런트엔드 그래픽과 웹 페이지를 생성합니다
  • DataProcessingService 두 서비스 간의 정보 요청을 관리하는 데 사용되는 파이톤 서비스.
  • VeryLargeDataStore Edgey Corp 스토어의 샘플 데이터를 포함하는 대형 데이터 저장 서비스
  • 참고: VeryLarge 서비스를 VeryLarge 서비스라고 부르는 이유는 로컬 환경에 CPU와 RAM이 충분하지 않거나 개발자마다 추가 비용을 지불하고 싶지 않을 수 있다는 사실을 강조하기 위해서입니다.

    이 구조도에서 사용자의 요청이 입구 컨트롤러를 통해 저희 서비스로 연결되는 것을 알 수 있습니다.간단하게 보기 위해서 우리는 본 강좌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 서비스를 위한 로컬 개발 환경이 필요합니다.위의 구조도에서 보듯이 DataProcessingServiceVeryLargeJavaServiceVeryLargeDataStore에 의존하기 때문에 이 서비스를 변경하기 위해 다른 서비스와 상호작용을 해야 합니다.우리 시작합시다!
  • GitHub에서 이 애플리케이션의 저장소를 복제합니다.
  • git clone https://github.com/datawire/edgey-corp-python.git
    
  • 사용pip 어플리케이션 종속성 설치(Python 3이 설치되어 있으면 다음을 입력해야 할 수 있음pip3:
  • cd edgey-corp-python/DataProcessingService/
    pip install flask requests
    
  • 응용 프로그램을 실행합니다(Python 3이 설치되어 있으면 다음을 입력해야 할 수도 있습니다python3.
  • python app.py
    
  • 어플리케이션을 테스트합니다.다른 터미널 창에서 파란색으로 돌아가야 하는 요청을 서비스에 보낼 것입니다.
  • curl localhost:3000/color
    blue
    

    3단계: 원격으로 코드 변경


    Kubernetes 테스트 코드 변경을 사용하려면 보통 용기 이미지를 구축하여 이미지를 저장소로 전송한 다음 Kubernetes 그룹을 배치해야 합니다.몇 분 걸려요?
    Telepresence는 클라우드 컴퓨팅의 기초 프로젝트로 이 문제를 마침 해결했다.로컬 개발 환경과 Kubernetes 그룹 간에 양방향 네트워크 연결을 만들면 원격 구현을 통해 빠른 로컬 개발을 실현할 수 있습니다.
  • 트루 다운로드(약 60MB):
  • # 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
    
  • 원격 Kubernetes 클러스터에 연결하여 원격 현장 환경을 테스트합니다.
  • telepresence connect
    
  • Kubernetes API 서버에 요청:
  • 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
    
  • 원격으로 애플리케이션에 직접 액세스할 수 있습니다.브라우저에서 http://verylargejavaservice:8080로 이동합니다.마찬가지로 원격 디스플레이는 브라우저로부터 요청을 차단하고 Kubernetes 그룹으로 직접 연결합니다.
  • 지금 코드를 변경하겠습니다.DataProcessingService를 열고 edgey-corp-python/DataProcessingService/app.pyDEFAULT_COLOR에서 blue로 변경합니다.파일을 저장합니다.
  • 파란색에서 주황색으로 색상을 변경하는 방법을 브라우저에서 페이지를 다시 로드합니다.
  • 이렇게!원격 디스플레이를 통해 로컬 서비스 편집에서 더 큰 응용 프로그램에 변경 사항을 배치하는 속도가 얼마나 빠른지 알 수 있습니다.매번 변경된 용기를 구축하고 배치하는 원시 과정과 비교하면 얼마나 많은 시간을 절약할 수 있는지 쉽게 알 수 있습니다. 특히 우리가 더 복잡한 변경을 하거나 더 큰 서비스를 실행할 때.

    원격 현장 환경에 대한 자세한 정보


    일반적으로 Kubernetes를 사용하는 조직의 개발자들은 저효율 로컬 개발 환경에서 오는 느린 피드백 순환의 도전에 직면한다.오늘 우리는 원격으로 Kubernetes를 이용하여 신속하고 효율적인 개발 환경을 구축하고 유류 응용 프로그램의 실시간 피드백 순환으로 돌아가는 방법을 배웠다.
    트루에 대한 자세한 내용을 보려면 다음 리소스를 참조하십시오.
  • a를 보면 원격 임장감의 다양한 기능에 대한 더 자세한 설명이 나온다
  • 보기Python Quickstart for Telepresence
  • 이해Preview URLs를 통해 동료
  • 와 손쉽게 작업할 수 있습니다.

  • Join our Slack channel 원격 구현 커뮤니티 연결
  • 다음 강좌에서 로컬 Kubernetes 개발 환경을 원격 디스플레이로 설정하고, Pycharm으로 인터럽트를 설정하고 인터럽트 서비스를 디버깅할 것입니다.더 많은 강좌가 있을 때 통지를 받으려면 반드시 저희website를 보거나 저희를 계속 주목해 주십시오.
    이 글은 최초로 발표되었다Python Pandemonium.

    좋은 웹페이지 즐겨찾기