>  기사  >  백엔드 개발  >  PHP 프로그램의 컨테이너화된 패키징 및 배포에 Kubernetes를 사용하는 방법은 무엇입니까?

PHP 프로그램의 컨테이너화된 패키징 및 배포에 Kubernetes를 사용하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-07-31 12:28:491630검색

PHP 프로그램의 컨테이너화된 패키징 및 배포에 Kubernetes를 사용하는 방법은 무엇입니까?

Kubernetes는 컨테이너 배포, 확장, 관리를 자동화할 수 있는 오픈 소스 컨테이너 오케스트레이션 엔진입니다. 우수한 컨테이너 오케스트레이션 기능을 제공하므로 애플리케이션을 더 쉽게 구축하고 배포할 수 있습니다. 이 기사에서는 PHP 프로그램의 컨테이너화된 패키징 및 배포를 위해 Kubernetes를 사용하는 방법을 소개하고 해당 코드 예제를 제공합니다.

1. 준비

  1. Docker 설치: 시작하기 전에 Docker를 설치해야 합니다. Docker는 널리 사용되는 컨테이너화 플랫폼이므로 Docker를 사용하여 애플리케이션 이미지를 구축하고 패키징하겠습니다. 운영 체제에 따라 적절한 설치 방법을 선택할 수 있습니다.
  2. Kubernetes 설치: 다음으로 Kubernetes 클러스터를 설치해야 합니다. Kubernetes는 컨테이너화된 애플리케이션을 배포하고 관리하는 데 사용할 수 있는 클러스터 관리 프레임워크를 제공합니다. 공식에서는 kubeadm, Minikube 등과 같은 일부 설치 도구를 제공합니다. 실제 필요에 따라 적절한 설치 방법을 선택할 수 있습니다.

2. Docker 이미지 빌드
Docker 이미지를 빌드하기 전에 먼저 Dockerfile을 작성해야 합니다. Dockerfile은 Docker 이미지를 빌드하는 데 사용되는 스크립트로, 이미지를 빌드하고 실행하는 데 필요한 다양한 지침이 포함되어 있습니다. 다음은 간단한 Dockerfile 예입니다.

FROM php:7.4-apache

COPY . /var/www/html

RUN chown -R www-data:www-data /var/www/html

위 Dockerfile은 공식적으로 제공되는 PHP 7.4-apache 이미지를 기본 이미지로 사용하고, 현재 디렉터리의 모든 파일을 컨테이너의 /var/www/html 디렉터리에 복사하고, 적절하게 허가합니다.

Dockerfile을 저장한 후 다음 명령을 실행하여 Docker 이미지를 빌드합니다.

docker build -t my-php-app:v1 .

그 중 -t 매개변수는 이미지의 이름과 레이블을 지정하는 데 사용됩니다. 실행 후 다음 명령을 사용하여 빌드된 이미지를 볼 수 있습니다.

docker images

3. Kubernetes 배포 생성
Kubernetes에서 배포를 사용하여 애플리케이션의 복제본 세트를 정의하고 관리합니다. 다음은 간단한 배포 예입니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-php-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-php-app
  template:
    metadata:
      labels:
        app: my-php-app
    spec:
      containers:
      - name: my-php-app
        image: my-php-app:v1
        ports:
        - containerPort: 80

위 배포는 3개의 복제본이 있는 my-php-app이라는 컨테이너화된 애플리케이션을 정의합니다. 이는 이전 단계에서 구축한 my-php-app:v1 이미지를 사용하고 컨테이너의 포트 80을 호스트의 포트 80에 매핑합니다.

배포 정의 파일을 저장한 후 다음 명령을 실행하여 배포를 생성합니다.

kubectl apply -f my-php-app-deployment.yaml

다음 명령을 사용하여 생성된 배포를 볼 수 있습니다.

kubectl get deployments

4 Kubernetes 서비스 생성
Kubernetes 서비스는 외부 요청이 애플리케이션에 액세스할 수 있도록 애플리케이션의 포트입니다. 다음은 간단한 서비스 예입니다.

apiVersion: v1
kind: Service
metadata:
  name: my-php-app-service
spec:
  selector:
    app: my-php-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

위 서비스는 선택기를 통해 연결된 배포를 선택하는 my-php-app-service라는 서비스를 정의합니다. 호스트의 포트 80에서 컨테이너의 포트 80으로 요청을 전달하고 서비스 유형을 LoadBalancer로 지정합니다.

서비스 정의 파일을 저장한 후 다음 명령을 실행하여 서비스를 생성합니다.

kubectl apply -f my-php-app-service.yaml

다음 명령을 사용하여 생성된 서비스를 볼 수 있습니다.

kubectl get services

5. 애플리케이션에 액세스합니다.
위 단계를 실행한 후 Kubernetes는 PHP 애플리케이션을 자동으로 배포하고 관리합니다. 다음 명령을 사용하여 생성된 Pod를 볼 수 있습니다.

kubectl get pods

Pod 중 하나의 이름을 찾고 다음 명령을 사용하여 Pod의 로그를 볼 수 있습니다.

kubectl logs <pod名称>

다음 명령을 사용하여 외부 로그를 가져올 수 있습니다. 서비스 액세스 주소:

minikube service my-php-app-service --url

출력 주소를 복사하고 브라우저에서 열어 PHP 애플리케이션에 액세스하세요.

6. 요약
이 기사에서는 PHP 프로그램의 컨테이너화된 패키징 및 배포에 Kubernetes를 사용하는 방법을 소개합니다. Docker 이미지를 구축하고 Kubernetes 배포 및 서비스를 생성함으로써 PHP 애플리케이션을 쉽게 배포하고 관리할 수 있습니다. 실제 사용에서는 실제 요구 사항을 충족하기 위해 필요에 따라 추가 구성 및 최적화를 수행할 수 있습니다.

위 내용은 PHP 프로그램의 컨테이너화된 패키징 및 배포에 Kubernetes를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.