현재 위치: > 최신 기사 목록> PHP 컨테이너 오케스트레이션 및 서비스 오케스트레이션의 개념 및 응용 분석

PHP 컨테이너 오케스트레이션 및 서비스 오케스트레이션의 개념 및 응용 분석

M66 2025-06-19

컨테이너 오케스트레이션의 개념 및 적용

컨테이너 오케스트레이션은 일련의 컨테이너 세트의 작동 규칙 및 네트워크 구성을 정의하고 관리하여 응용 프로그램의 배포 및 관리를 말합니다. PHP 응용 분야에서 일반적인 컨테이너 오케스트레이션 도구는 Docker 및 Kubernetes입니다.

도커 컨테이너 오케스트레이션

Docker는 컨테이너를 통한 응용 프로그램의 포장 및 배포를 구현하는 가벼운 가상화 기술입니다. Docker는 응용 프로그램의 패키지 및 실행 방식을 정의 할 수있는 명령 및 구성 파일 세트를 제공합니다. Docker의 컨테이너 오케스트레이션을 통해 PHP 컨테이너를 신속하게 만들고 시작하고 자동 배포 및 관리를 수행 할 수 있습니다.

다음은 Docker를 사용한 PHP 컨테이너 오케스트레이션의 예입니다.

# dockerfile

# PHP에서 기본 이미지를 지정하십시오 : 7.4 아파치

# PHP 확장 런 Docker-Php-ext-Install MySQLI PDO_MYSQL 설치

# 응용 프로그램 코드를 컨테이너 사본에 복사하십시오. /var/www/html

# 컨테이너의 작업 디렉토리 WorkDir/var/www/html을 설정하십시오

# 컨테이너의 80 포트 노출 80 노출

# Apache Server CMD 시작 [ "Apache2-Foreground"]

위의 DockerFile을 통해 PHP 7.4 및 Apache Server가 포함 된 이미지를 작성하고 응용 프로그램 코드를 컨테이너에 복사 한 후 마지막으로 CMD 지침을 통해 Apache 서비스를 시작할 수 있습니다.

Kubernetes 컨테이너 오케스트레이션

Kubernetes는 오픈 소스 컨테이너 오케스트레이션 플랫폼으로 컨테이너화 된 응용 프로그램을 더 잘 관리하고 확장 할 수 있습니다. Kubernetes에서는 응용 프로그램의 복제본, 자원 제한, 네트워크 구성 등의 수를 정의하고 Kubernetes 스케줄러를 사용하여 컨테이너를 자동으로 배포하고 관리 할 수 ​​있습니다.

다음은 Kubernetes를 사용한 PHP 컨테이너 오케스트레이션의 예입니다.

# deployment.yaml

Apversion : Apps/V1
종류 : 배포
메타 데이터 :
  이름 : Php-App
투기:
  복제본 : 3
  선택자:
    matchlabels :
      앱 : PHP-APP
  주형:
    메타 데이터 :
      라벨 :
        앱 : PHP-APP
    투기:
      컨테이너 :
        - 이름 : PHP-APP
          이미지 : PHP : 7.4 아파치
          포트 :
            - 컨테이너 포트 : 80
          부피 :
            - 이름 : App-Data
              MOUNDPATH :/var/www/html
      볼륨 :
        - 이름 : App-Data
          emptydir : {}

위의 Deployment.yaml 파일을 통해 3 개의 복제본으로 PHP 응용 프로그램의 배포를 정의합니다. 각 복제본은 PHP : 7.4 아파치 이미지를 사용하고/var/www/html 디렉토리를 공유 볼륨으로 장착합니다.

서비스 오케스트레이션의 개념 및 적용

서비스 오케스트레이션은 일련의 컨테이너 세트의 운영 상태 및 네트워크 액세스 규칙을 정의하고 관리하여 서비스 발견 및 응용 프로그램의로드 밸런싱 구현을 말합니다. PHP 응용 프로그램에서 일반적인 서비스 오케스트레이션 도구는 Docker Compose 및 Kubernetes입니다.

Docker Compose의 서비스 오케스트레이션

Docker Compose는 여러 도커 컨테이너를 정의하고 실행하는 도구입니다. 구성 파일을 통해 여러 컨테이너 간의 관계 및 종속성을 정의 할 수 있습니다. Docker Compose의 서비스 오케스트레이션을 통해 여러 관련 PHP 컨테이너를 신속하게 만들고 시작하고 네트워크 연결 및 서비스 검색을 정의 할 수 있습니다.

다음은 Docker Compose를 사용한 PHP 서비스 오케스트레이션의 예입니다.

# docker-compose.yaml
버전 : '3'
서비스 :
  PHP-APP :
    짓다:
      문맥: .
      dockerfile : dockerfile
    포트 :
      -8080 : 80
    볼륨 :
      -. :/var/www/html
    부양애 :
      -MySQL
  mysql :
    이미지 : MySQL : 5.7
    환경:
      -Mysql_root_password = 비밀
      -Mysql_database = php_app_db

위의 Docker-Compose.yaml 파일을 통해 PHP 응용 프로그램 및 MySQL 데이터베이스가 포함 된 서비스 오케스트레이션을 정의합니다. PHP 응용 프로그램은 정의 된 Dockerfiles를 사용하여 구축되며 로컬 코드 디렉토리는 컨테이너에 장착됩니다. MySQL 서비스는 MySQL : 5.7 이미지로 작성되었으며 데이터베이스의 비밀번호와 이름을 구성하도록 환경 변수를 설정했습니다.

Kubernetes 서비스 오케스트레이션

Kubernetes에서는 서비스 및 유입을 사용하여 컨테이너 서비스 발견 및로드 밸런싱을 달성 할 수 있습니다. 서비스는 컨테이너 간 네트워크 연결 규칙을 정의하는 데 사용되며 컨테이너 서비스의 외부 액세스 규칙을 정의하는 데 사용됩니다.

다음은 PHP 서비스 오케스트레이션에 Kubernetes를 사용하는 예입니다.

# service.yaml

애호가 : v1
친절 : 서비스
메타 데이터 :
  이름 : PHP-App-Service
투기:
  선택자:
    앱 : PHP-APP
  포트 :
    - 프로토콜 : TCP
      포트 : 80
      TargetPort : 80
  유형 : NODEPORT

위의 Service.YAML 파일을 통해 PHP-App-Service라는 서비스 객체를 정의하여 외부 네트워크 트래픽을 컨테이너 라벨이 붙은 앱 : PHP-App으로 전달합니다. 동시에, 컨테이너가 사용한 포트 번호를 80으로 지정하고 서비스 유형을 Cluster 노드의 IP 주소와 노출 된 포트의 IP 주소를 통해 PHP 응용 프로그램에 액세스 할 수 있도록 서비스 유형을 NODEPORT로 설정했습니다.

요약

컨테이너 오케스트레이션 및 서비스 오케스트레이션은 PHP 응용 프로그램의 포장 배포에 중요한 역할을합니다. 컨테이너 오케스트레이션을 통해 PHP 컨테이너를 신속하게 만들고 관리하고 응용 프로그램의 실행중인 환경 및 구성을 정의 할 수 있습니다. 서비스 오케스트레이션을 통해 PHP 컨테이너 서비스의 발견 및로드 밸런싱을 실현하여 응용 프로그램 가용성 및 성능을 향상시킬 수 있습니다.

Docker 또는 Kubernetes를 사용하든 컨테이너 오케스트레이션 및 서비스 오케스트레이션을 사용하면 PHP 응용 프로그램의 효율적인 배포 및 관리를 달성 할 수 있습니다. 위의 소개와 예제가 컨테이너 오케스트레이션 및 서비스 오케스트레이션을 이해하고 적용하는 데 도움이되기를 바랍니다.