Kubernetes를 사용하여 Python 애플리케이션의 컨테이너화를 관리하는 방법
Kubernetes는 애플리케이션의 컨테이너화된 배포, 자동 확장 및 내결함성 복구를 관리하기 위한 오픈 소스 플랫폼입니다. 유연한 배포 및 확장 메커니즘을 제공하고 컨테이너 관리 및 모니터링을 자동화할 수 있습니다. 이 문서에서는 Kubernetes를 사용하여 Python 애플리케이션의 컨테이너화를 관리하는 방법을 소개하고 몇 가지 간단한 코드 예제를 제공합니다.
먼저 Python 애플리케이션을 준비하고 컨테이너화해야 합니다. Flask 프레임워크를 통해 구현할 수 있는 간단한 웹 애플리케이션이 있다고 가정해 보겠습니다. 다음은 간단한 예입니다.
# app.py from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
이 애플리케이션에 대한 컨테이너를 빌드하려면 Dockerfile을 만들어야 합니다. 다음은 간단한 Dockerfile 예입니다.
# Dockerfile FROM python:3.9 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 5000 CMD ["python", "app.py"]
이 Dockerfile에서는 먼저 Python 애플리케이션의 기본 이미지(python:3.9)를 선택한 다음 애플리케이션 코드를 컨테이너의 작업 디렉터리에 복사하고 필요한 모든 종속성을 설치합니다. 마지막으로 포트 5000에 애플리케이션을 노출하고 컨테이너가 시작될 때 실행할 명령을 정의했습니다.
Dockerfile을 준비한 후 다음 명령을 사용하여 Docker 이미지를 빌드할 수 있습니다.
docker build -t my-python-app .
이렇게 하면 현재 디렉터리에 my-python-app이라는 Docker 이미지가 빌드됩니다.
계속하기 전에 Kubernetes 클러스터를 구성해야 합니다. Kubernetes 설치 및 구성은 이 기사의 범위를 벗어나므로 이미 작동 중인 클러스터가 있다고 가정합니다.
다음으로 애플리케이션 컨테이너를 관리하기 위해 Kubernetes 배포를 생성해야 합니다. my-python-app-deployment.yaml이라는 파일을 생성하고 파일에 다음 콘텐츠를 추가하세요:
# my-python-app-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: my-python-app-deployment spec: replicas: 3 selector: matchLabels: app: my-python-app template: metadata: labels: app: my-python-app spec: containers: - name: my-python-app image: my-python-app ports: - containerPort: 5000
이 배포에서는 실행하려는 컨테이너의 복제본 수를 지정하기 위해 3개의 복제본을 정의했습니다. 또한 배포와 일치하도록 선택기를 정의하고 컨테이너 이미지의 이름과 포트를 지정합니다.
다음으로 다음 명령을 사용하여 앱을 배포할 수 있습니다.
kubectl apply -f my-python-app-deployment.yaml
이렇게 하면 my-python-app-deployment라는 배포가 생성되고 클러스터에서 컨테이너 복사본 3개가 시작됩니다.
마지막으로 애플리케이션의 서비스를 외부에서 접근할 수 있도록 노출시켜야 합니다. my-python-app-service.yaml이라는 파일을 생성하고 파일에 다음 콘텐츠를 추가하세요:
# my-python-app-service.yaml apiVersion: v1 kind: Service metadata: name: my-python-app-service spec: selector: app: my-python-app ports: - protocol: TCP port: 80 targetPort: 5000 type: LoadBalancer
이 서비스에서는 컨테이너의 포트 매핑을 지정하고 이를 포트 80으로 내보냅니다. 또한 로드 밸런싱을 지원하는 환경에서 외부 로드 밸런서를 자동으로 생성하기 위해 서비스 유형을 LoadBalancer로 지정합니다.
마지막으로 다음 명령을 사용하여 서비스를 클러스터에 배포할 수 있습니다.
kubectl apply -f my-python-app-service.yaml
이렇게 하면 my-python-app-service라는 서비스가 생성되어 배포와 연결됩니다. Kubernetes는 자동으로 외부 로드 밸런서를 생성하고 트래픽을 애플리케이션 컨테이너로 라우팅합니다.
요약
위 단계를 통해 우리는 Kubernetes를 사용하여 Python 애플리케이션의 컨테이너화를 성공적으로 관리했습니다. 먼저 Python 애플리케이션을 준비하고 이를 Docker 이미지로 패키징합니다. 그런 다음 애플리케이션을 컨테이너화하기 위해 Kubernetes 배포를 생성하고 시작해야 하는 복제본 수를 정의했습니다. 마지막으로 애플리케이션의 서비스를 노출하고 외부 세계와의 통신을 허용하는 서비스를 만듭니다.
이 기사가 Kubernetes를 이해하고 사용하여 Python 애플리케이션의 컨테이너화를 관리하는 데 도움이 되기를 바랍니다. 필요에 맞게 샘플 코드를 사용자 정의하고 애플리케이션과 해당 환경을 더욱 확장하고 최적화할 수 있습니다.
위 내용은 Kubernetes를 사용하여 Python 애플리케이션의 컨테이너화를 관리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!