最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過kubernetes部署nginx+php網(wǎng)站環(huán)境過程

 更新時間:2026年01月26日 10:13:22   作者:ICT董老師  
本文詳細(xì)介紹了如何在Kubernetes中部署Nginx+PHP網(wǎng)站環(huán)境,包括環(huán)境準(zhǔn)備、部署步驟、Service、ConfigMap、Ingress等配置,并提供了具體的YAML文件示例和命令,通過這些步驟,可以實現(xiàn)高可用、可擴(kuò)展的Web服務(wù)

在 Kubernetes 中部署 Nginx + PHP 網(wǎng)站環(huán)境,需通過 Deployment 管理應(yīng)用副本、Service 暴露服務(wù)端口,并利用 Ingress 實現(xiàn) HTTP 路由。

以下是具體步驟及配置示例:

一、環(huán)境準(zhǔn)備

Kubernetes 集群

Docker 鏡像

  • PHP 應(yīng)用鏡像:基于官方 PHP 鏡像(如 php:7.4-fpm-alpine)構(gòu)建,包含應(yīng)用代碼。
  • Nginx 鏡像:使用官方 Nginx 鏡像(如 nginx:1.16.1),需配置反向代理指向 PHP。

二、部署步驟

1. 創(chuàng)建 PHP Deployment

創(chuàng)建 Dockerfile

創(chuàng)建一個包含以下內(nèi)容的 Dockerfile

官方 PHP 鏡像提供了 docker-php-ext-install 腳本,專門用于安裝核心擴(kuò)展(包括 mysqli)。

dockerfile:

FROM php:7.4-fpm-alpine

# 使用官方腳本安裝 mysqli 擴(kuò)展
RUN docker-php-ext-install mysqli

構(gòu)建并推送鏡像

使用自己的鏡像倉庫 kubernetes-register.dong.com

# 構(gòu)建鏡像
docker build -t kubernetes-register.dong.com/php-with-mysqli:7.4-fpm-alpine .

docker tag kubernetes-register.dong.com/php-with-mysqli:7.4-fpm-alpine kubernetes-register.dong.com/mysql/php-with-mysqli:7.4-fpm-alpine

# 推送鏡像到你的私有倉庫
docker push kubernetes-register.dong.com/mysql/php-with-mysqli:7.4-fpm-alpine

定義 PHP 應(yīng)用的副本數(shù)、容器鏡像及端口(事先配置好PV動態(tài)供給)

php-deployment.yaml

# php-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: php-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: php
  template:
    metadata:
      labels:
        app: php
    spec:
      containers:
      - name: php
        image: kubernetes-register.dong.com/mysql/php-with-mysqli:7.4-fpm-alpine
        ports:
        - containerPort: 9000
        volumeMounts:
        - name: html
          mountPath: /var/www/html
      volumes:
      - name: html
        persistentVolumeClaim:
          claimName: nginx-pvc

命令:

kubectl apply -f php-deployment.yaml

2. 創(chuàng)建 PHP Service

暴露 PHP 應(yīng)用的端口,供 Nginx 內(nèi)部訪問。

php-service.yaml

# php-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: php-service
spec:
  selector:
    app: php
  ports:
  - protocol: TCP
    port: 9000
    targetPort: 9000

命令:

kubectl apply -f php-service.yaml

3. 創(chuàng)建 Nginx Deployment

配置 Nginx 作為反向代理,指向 PHP Service。

nginx-deployment.yaml

# nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.16.1
        ports:
        - containerPort: 80
        volumeMounts:
        - name: html
          mountPath: /var/www/html
        - name: nginx-config
          mountPath: /etc/nginx/conf.d
      volumes:
      - name: html
        persistentVolumeClaim:
          claimName: nginx-pvc
      - name: nginx-config
        configMap:
          name: nginx-config

關(guān)鍵點

  • 通過 ConfigMap 掛載 Nginx 配置文件(見下一步)。
  • 通過PVC掛載網(wǎng)站文件。
  • 容器端口為 80(HTTP 默認(rèn)端口)。

4. 創(chuàng)建 Nginx ConfigMap

定義 Nginx 反向代理配置,指向 PHP Service。

nginx-configmap.yaml

# nginx-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-config
data:
  default.conf: |
    server {
        listen 80;
        server_name student.dong.com;

        location / {
            root   /var/www/html;
            index  index.php index.html index.htm;
        }

        location ~ \.php$ {
            fastcgi_pass   php-service:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

命令:

kubectl apply -f nginx-configmap.yaml
kubectl apply -f nginx-deployment.yaml

5. 創(chuàng)建 Nginx Service

暴露 Nginx 端口到集群外部(如 NodePort 或 LoadBalancer)。

nginx-service.yaml

# nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
  type: NodePort

命令:

kubectl apply -f nginx-service.yaml

6. 部署 Ingress(可選)

若需通過域名訪問,可部署 Ingress Controller(如 Nginx Ingress)并配置路由規(guī)則。

ingress.yaml

# ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-ingress
    # annotations:
    # nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  ingressClassName: nginx
  rules:
  - host: student.dong.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx-service
            port:
              number: 80

命令:

kubectl apply -f ingress.yaml

三、驗證部署

檢查 Pod 狀態(tài):kubectl get pods

獲取 Service 外部 IP:kubectl get svc nginx-service

  • 若類型為 LoadBalancer,會顯示外部 IP;若為 NodePort,需通過節(jié)點 IP + 端口訪問。

訪問應(yīng)用

  • 直接訪問外部 IP 或域名。
  • 檢查 PHP 是否正常解析(如創(chuàng)建 info.php 文件輸出 phpinfo())。

四、關(guān)鍵配置說明

  • PHP-FPM 端口:默認(rèn) 9000,需與 Nginx 配置一致。
  • Nginx 反向代理:通過 fastcgi_pass 指向 PHP Service 的 ClusterIP。
  • 持久化存儲:若需持久化數(shù)據(jù)(如上傳文件),需添加 PersistentVolumeClaim(PVC)。

五、擴(kuò)展優(yōu)化

  • 自動擴(kuò)縮容:為 Deployment 配置 Horizontal Pod Autoscaler(HPA)。
  • 健康檢查:添加 livenessProbe 和 readinessProbe 確保服務(wù)可用性。
  • 日志收集:集成 Fluentd 或 Loki 收集容器日志。

通過以上步驟,即可在 Kubernetes 中高效部署 Nginx + PHP 網(wǎng)站環(huán)境,實現(xiàn)高可用、可擴(kuò)展的 Web 服務(wù)。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Kubernetes應(yīng)用配置管理創(chuàng)建使用詳解

    Kubernetes應(yīng)用配置管理創(chuàng)建使用詳解

    這篇文章主要為大家介紹了Kubernetes應(yīng)用配置管理創(chuàng)建使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • k8s中對gkv的理解TypeData詳解

    k8s中對gkv的理解TypeData詳解

    Kubernetes資源通過GKV(Group、Version、Kind)標(biāo)識,用于分類、版本管理和資源識別,在YAML配置中,apiVersion和kind字段分別體現(xiàn)GKV,是K8s資源操作的基礎(chǔ),通過GKV,Kubernetes可以正確解析和執(zhí)行資源配置,并確保版本兼容性
    2025-11-11
  • k8s的包管理工具h(yuǎn)elm使用簡介

    k8s的包管理工具h(yuǎn)elm使用簡介

    這篇文章主要為大家介紹了k8s的包管理工具h(yuǎn)elm使用簡介,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • 在k8s中副本使用pod的IP注冊到consul全過程

    在k8s中副本使用pod的IP注冊到consul全過程

    文章介紹了如何在Kubernetes環(huán)境中通過DNS獲取POD的IP,并將其用于注冊到Consul,通過修改服務(wù)啟動腳本和Kubernetes樣本文件,使得微服務(wù)能夠獲取POD信息并使用該IP注冊到Consul,從而實現(xiàn)服務(wù)間的發(fā)現(xiàn)和通信
    2026-02-02
  • K8s集群(kubeadm)CA證書過期的解決過程

    K8s集群(kubeadm)CA證書過期的解決過程

    在K8s集群中,CA證書和Token都會過期,導(dǎo)致新節(jié)點無法加入集群,需要備份舊證書,重新生成新證書和配置文件,更新kubectl配置,重啟kubelet,重新加入工作節(jié)點,驗證集群節(jié)點狀態(tài)和健康狀況,確保K8s集群正常運行
    2026-01-01
  • K8s Taint污點與Toleration容忍詳解

    K8s Taint污點與Toleration容忍詳解

    Kubernetes通過Taint與Toleration控制Pod調(diào)度與驅(qū)逐,Taint類型包括NoSchedule、NoExecute、PreferNoSchedule,Toleration可配置匹配規(guī)則及容忍時間,用于應(yīng)對節(jié)點故障、網(wǎng)絡(luò)抖動等場景,同時需注意參數(shù)優(yōu)先級和內(nèi)置策略
    2025-08-08
  • Minikube極速搭建單機(jī)k8s集群全過程

    Minikube極速搭建單機(jī)k8s集群全過程

    本篇教程分享了如何在Ubuntu上安裝和配置Minikube,一個用于運行單機(jī)Kubernetes集群的工具,文章詳細(xì)介紹了安裝Docker、Kubectl和Minikube的步驟,并指導(dǎo)如何啟動集群、驗證安裝以及部署一個簡單的Nginx服務(wù)
    2025-12-12
  • K8s之StatefulSet控制器使用實例

    K8s之StatefulSet控制器使用實例

    在Kubernetes實戰(zhàn)中,StatefulSet控制器用于部署和管理有狀態(tài)應(yīng)用,這些應(yīng)用需要穩(wěn)定的持久化存儲、有序的部署和擴(kuò)展、以及唯一的網(wǎng)絡(luò)標(biāo)識,這篇文章主要介紹了K8s之StatefulSet控制器使用的相關(guān)資料,需要的朋友可以參考下
    2026-04-04
  • kubernetes 使用jq命令對資源配置查看方式

    kubernetes 使用jq命令對資源配置查看方式

    這篇文章主要介紹了kubernetes 使用jq命令對資源配置查看方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • kubernetes-1.25.6二進(jìn)制部署方式

    kubernetes-1.25.6二進(jìn)制部署方式

    這篇文章主要介紹了kubernetes-1.25.6二進(jìn)制部署方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論

应用必备| 镇康县| 铜陵市| 保康县| 南川市| 青海省| 常州市| 岳普湖县| 鄂温| 承德县| 五台县| 屯门区| 盘山县| 措美县| 海门市| 辽宁省| 新津县| 浮梁县| 茌平县| 饶河县| 西乌珠穆沁旗| 渭源县| 禹城市| 东乌珠穆沁旗| 临洮县| 惠州市| 齐齐哈尔市| 岳普湖县| 天台县| 塔河县| 瑞丽市| 锡林浩特市| 黄陵县| 白山市| 秭归县| 宾川县| 宜城市| 南平市| 东阿县| 哈尔滨市| 礼泉县|