關於k8s部署php鏡像執行個體

來源:互聯網
上載者:User

之前寫了 製作php+nginx環境鏡像 ,製作了一個php鏡像。本文主要和大家分享關於k8s部署php鏡像執行個體,希望能協助到大家。

那麼如何使用這個鏡像呢?

1.可以直接用docker來運行這個容器

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

docker命令解釋:

–rm : 防止docker產生tag為 none的的鏡像

-d : 使得產生的container在後台運行

–name : 指定該container 名稱為php ,方便之後操作

-p :指定連接埠 第一個80為宿主機的連接埠號碼,第二個80為container的連接埠號碼
第一個連接埠號碼可以是你的宿主機的任何可用連接埠,可以用localhost:連接埠號碼進行訪問。

-v : v是volume的縮寫,即將宿主機的卷掛載到container中
第一個/tmp指的是宿主機中的path路徑
第二個/app是container的path路徑

由於基礎鏡像webdevops/php-nginx:centos-7-php56中配置的nginx root路徑為/app,所以此處指定為/app
在/tmp中添加檔案index.php
內容為:

<? phpinfo() ?>

啟動容器後即可訪問宿主機地址+連接埠號碼,如curl localhost:連接埠號碼,即會返回phpinfo

在webdevops/php-nginx鏡像文檔中即可看到設定檔的路徑
此處生效的nginx設定檔路徑是:/opt/docker/etc/nginx/vhost.conf
在該設定檔中可以看到監聽80連接埠的配置root路徑為/app
可以修改該路徑

2.使用k8s部署
將鏡像上傳至倉庫中
docker push image_name

建立deployment 設定檔:php-deployment.yaml

deployment.yamlapiVersion: extensions/v1beta1kind: Deploymentmetadata:  name: phpspec:  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: ServiceapiVersion: v1metadata:  name: php-service  namespace: default  labels:    app: phpspec:  ports:  - name: listener    protocol: TCP    port: 80    targetPort: 80  selector:    app: php  type: LoadBalancer  externalIPs:    - your ip address

執行命令:

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

可通過 以下命令查看

kubectl get deploymentkubectl get service

之後可以通過訪問你的宿主機ip來獲得phpinfo
當然你的k8s叢集中運行php容器節點的/tmp路徑下需要有index.php這個檔案
至於是哪個節點運行了這個容器可以通過 kubecel get pods php來查看

之前寫了 製作php+nginx環境鏡像
製作了一個php鏡像。

那麼如何使用這個鏡像呢?

1.可以直接用docker來運行這個容器

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

docker命令解釋:

–rm : 防止docker產生tag為 none的的鏡像

-d : 使得產生的container在後台運行

–name : 指定該container 名稱為php ,方便之後操作

-p :指定連接埠 第一個80為宿主機的連接埠號碼,第二個80為container的連接埠號碼
第一個連接埠號碼可以是你的宿主機的任何可用連接埠,可以用localhost:連接埠號碼進行訪問。

-v : v是volume的縮寫,即將宿主機的卷掛載到container中
第一個/tmp指的是宿主機中的path路徑
第二個/app是container的path路徑

由於基礎鏡像webdevops/php-nginx:centos-7-php56中配置的nginx root路徑為/app,所以此處指定為/app
在/tmp中添加檔案index.php
內容為:

<? phpinfo() ?>

啟動容器後即可訪問宿主機地址+連接埠號碼,如curl localhost:連接埠號碼,即會返回phpinfo

在webdevops/php-nginx鏡像文檔中即可看到設定檔的路徑
此處生效的nginx設定檔路徑是:/opt/docker/etc/nginx/vhost.conf
在該設定檔中可以看到監聽80連接埠的配置root路徑為/app
可以修改該路徑

2.使用k8s部署
將鏡像上傳至倉庫中
docker push image_name

建立deployment 設定檔:php-deployment.yaml

deployment.yamlapiVersion: extensions/v1beta1kind: Deploymentmetadata:  name: phpspec:  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: ServiceapiVersion: v1metadata:  name: php-service  namespace: default  labels:    app: phpspec:  ports:  - name: listener    protocol: TCP    port: 80    targetPort: 80  selector:    app: php  type: LoadBalancer  externalIPs:    - your ip address

執行命令:

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

可通過 以下命令查看

kubectl get deploymentkubectl get service

之後可以通過訪問你的宿主機ip來獲得phpinfo
當然你的k8s叢集中運行php容器節點的/tmp路徑下需要有index.php這個檔案
至於是哪個節點運行了這個容器可以通過 kubecel get pods php來查看。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.