>  기사  >  백엔드 개발  >  k8s 배포 PHP 미러 인스턴스 정보

k8s 배포 PHP 미러 인스턴스 정보

小云云
小云云원래의
2018-03-09 13:57:424258검색

전에 php+nginx 환경 이미지 만들기에 대해 글을 쓰고 php 이미지를 만들어 봤습니다. 이 기사에서는 주로 PHP 미러링의 k8s 배포에 대한 몇 가지 예를 공유하여 도움이 되기를 바랍니다.

그럼 이 이미지를 어떻게 사용하나요?

1 docker를 사용하여 이 컨테이너를 직접 실행할 수 있습니다.

docker run --rm -d --name php -p 80:80 -v /tmp:/app

docker 명령 설명:

–rm: docker가 none 태그가 있는 이미지를 생성하지 못하도록 합니다.

-d: 생성된 컨테이너를 백그라운드에서 실행합니다.

– name: 컨테이너의 이름을 php로 지정합니다. 이는 후속 작업에 편리합니다.

-p: 지정된 포트의 처음 80은 호스트의 포트 번호이고, 두 번째 80은 호스트의 포트 번호입니다. 컨테이너
첫 번째 포트 번호는 호스트 시스템에서 사용 가능한 포트일 수 있으며 localhost:port 번호를 사용하여 액세스할 수 있습니다.

-v: v는 Volume의 약어로, 호스트 볼륨을 컨테이너에 마운트한다는 뜻입니다
첫 번째 /tmp는 호스트의 경로를 나타냅니다
두 번째 /app은 컨테이너의 경로입니다

기본 이미지 webdevops/php-nginx:centos-7-php56에 구성된 nginx 루트 경로가 /app이므로 여기서는 /app으로 지정합니다
파일을 추가합니다 in /tmp index.php
내용은 다음과 같습니다.

<? phpinfo() ?>

컨테이너를 시작한 후 호스트 주소 + 포트 번호에 액세스할 수 있습니다. 예를 들어, 컬 localhost: 포트 번호는 phpinfo를 반환합니다

webdevops에서 구성을 볼 수 있습니다. /php-nginx 이미지 문서 파일 경로
여기서 적용되는 nginx 구성 파일의 경로는 다음과 같습니다: /opt/docker/etc/nginx/vhost.conf
이 구성 파일에서 구성 루트 경로를 볼 수 있습니다 모니터링 포트 80은 /app입니다.
이 경로는 수정 가능합니다.

2. k8s 배포 사용
웨어하우스에 이미지 업로드
docker push image_name

새 배포 구성 파일: php-deployment.yaml

deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: php
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: php
    spec:
      containers:
      - name: php        image: image_address
        ports:
        - containerPort: 80        volumeMounts:
        - mountPath: /app          name: php-volume
      volumes:
      - name: php-volume        hostPath:
          path: /tmp

새 php -service.yaml 파일

kind: Service
apiVersion: v1
metadata:
  name: php-service  namespace: default
  labels:
    app: php
spec:
  ports:
  - name: listener
    protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: php  type: LoadBalancer
  externalIPs:
    - your ip address

실행 명령:

kubectl apply -f php-deployment.yaml
kubectl apply -f php-service.yaml

다음 명령을 통해 볼 수 있습니다

kubectl get deployment
kubectl get service

그런 다음 호스트 IP에 액세스하여 phpinfo를 얻을 수 있습니다.
물론 index.php 파일은 / k8s 클러스터에서 PHP 컨테이너를 실행하는 노드의 tmp 경로
어떤 노드에서 실행 중인지 이 컨테이너는 kubecel get pods php를 통해 볼 수 있습니다.

이전에 php+nginx 환경 이미지를 작성하고 만들었습니다.
PHP 이미지를 만들었습니다. .

그럼 이 이미지를 어떻게 사용하나요?

1 docker를 사용하여 이 컨테이너를 직접 실행할 수 있습니다.

docker run --rm -d --name php -p 80:80 -v /tmp:/app

docker 명령 설명:

–rm: docker가 none 태그가 있는 이미지를 생성하지 못하도록 합니다.

-d: 생성된 컨테이너를 백그라운드에서 실행합니다.

– name: 컨테이너의 이름을 php로 지정합니다. 이는 후속 작업에 편리합니다.

-p: 지정된 포트의 처음 80은 호스트의 포트 번호이고, 두 번째 80은 호스트의 포트 번호입니다. 컨테이너
첫 번째 포트 번호는 호스트 시스템에서 사용 가능한 포트일 수 있으며, localhost:port 번호를 사용하여 액세스할 수 있습니다.

-v: v는 Volume의 약어로, 호스트 볼륨을 컨테이너에 마운트한다는 뜻입니다
첫 번째 /tmp는 호스트의 경로를 나타냅니다
두 번째 /app은 컨테이너의 경로입니다

기본 이미지 webdevops/php-nginx:centos-7-php56에 구성된 nginx 루트 경로가 /app이므로 여기서는 /app으로 지정합니다
파일을 추가합니다 in /tmp index.php
내용은 다음과 같습니다.

<? phpinfo() ?>

컨테이너를 시작한 후 호스트 주소 + 포트 번호에 액세스할 수 있습니다. 예를 들어, 컬 localhost: 포트 번호는 phpinfo를 반환합니다

webdevops에서 구성을 볼 수 있습니다. /php-nginx 이미지 문서 파일 경로
여기서 적용되는 nginx 구성 파일의 경로는 다음과 같습니다: /opt/docker/etc/nginx/vhost.conf
이 구성 파일에서 구성 루트 경로를 볼 수 있습니다 모니터링 포트 80은 /app입니다.
이 경로는 수정 가능합니다.

2. k8s 배포 사용
웨어하우스에 이미지 업로드
docker push image_name

새 배포 구성 파일: php-deployment.yaml

deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: php
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: php
    spec:
      containers:
      - name: php        image: image_address
        ports:
        - containerPort: 80        volumeMounts:
        - mountPath: /app          name: php-volume
      volumes:
      - name: php-volume        hostPath:
          path: /tmp

새 php -service.yaml 파일

kind: Service
apiVersion: v1
metadata:
  name: php-service  namespace: default
  labels:
    app: php
spec:
  ports:
  - name: listener
    protocol: TCP
    port: 80
    targetPort: 80
  selector:
    app: php  type: LoadBalancer
  externalIPs:
    - your ip address

실행 명령:

kubectl apply -f php-deployment.yaml
kubectl apply -f php-service.yaml

다음 명령을 통해 볼 수 있습니다

kubectl get deployment
kubectl get service

그런 다음 호스트 IP에 액세스하여 phpinfo를 얻을 수 있습니다.
물론 index.php 파일은 / k8s 클러스터에서 PHP 컨테이너를 실행하는 노드의 tmp 경로
어떤 노드에서 실행되고 있는지 이 컨테이너는 kubecel get pods php를 통해 볼 수 있습니다.

관련 권장 사항:

Docker를 사용하여 PHP 개발 환경을 배포하는 방법

Linux에서 PHP 프로젝트를 배포하는 방법은 무엇입니까?

Linux에서 공존할 수 있도록 여러 버전의 PHP 배포

위 내용은 k8s 배포 PHP 미러 인스턴스 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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