Kubernetes पर PHP डिप्लॉय: डेवलपर्स के लिए बुनियादी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Kubernetes पर PHP डिप्लॉय: बुनियादी गाइड

आधुनिक वेब डेवलपमेंट में तेजी से स्केलेबल और फॉल्ट-टॉलरेंट समाधानों की आवश्यकता होती है। Kubernetes (K8s) कंटेनर ऑर्केस्ट्रेशन के लिए डी-फैक्टो मानक बन गया है। यदि आप PHP डेवलपर हैं और Kubernetes में अपने एप्लिकेशन डिप्लॉय करना सीखना चाहते हैं, तो यह गाइड आपके लिए है। हम Docker इमेज बनाने से लेकर क्लस्टर में पूर्ण PHP सेवा डिप्लॉय करने तक की यात्रा करेंगे।



PHP को Kubernetes पर क्यों डिप्लॉय करें?

Kubernetes PHP एप्लिकेशन के लिए कई लाभ प्रदान करता है:

  • स्वचालित स्केलिंग: K8s लोड बढ़ने पर पॉड्स की संख्या बढ़ा सकता है और घटने पर घटा सकता है।
  • स्व-उपचार: यदि कोई कंटेनर क्रैश होता है, तो Kubernetes स्वचालित रूप से उसे पुनरारंभ करता है।
  • कॉन्फ़िगरेशन प्रबंधन: एनवायरनमेंट वेरिएबल्स और कॉन्फ़िगरेशन फ़ाइलों को ConfigMap और Secrets के माध्यम से आसानी से केंद्रीकृत किया जा सकता है।
  • अपडेट में आसानी: Rolling updates बिना डाउनटाइम के एप्लिकेशन को अपडेट करने की अनुमति देते हैं।

PHP के लिए यह विशेष रूप से प्रासंगिक है, क्योंकि कई लीगेसी प्रोजेक्ट्स को पारंपरिक तरीकों से स्केल करना मुश्किल होता है।



चरण 1: PHP एप्लिकेशन को कंटेनरीकृत करना

Kubernetes में एप्लिकेशन डिप्लॉय करने से पहले, इसे Docker इमेज में पैक करना होगा। आइए Nginx और PHP-FPM का उपयोग करके एक सरल PHP एप्लिकेशन का उदाहरण देखें।



प्रोजेक्ट संरचना बनाएँ

my-php-app/├── src/│   └── index.php├── docker/│   ├── nginx/│   │   └── default.conf│   └── php/│       └── Dockerfile└── docker-compose.yml


उदाहरण src/index.php

<?phpecho "Hello from PHP on Kubernetes!";phpinfo();?>


PHP-FPM के लिए Dockerfile

FROM php:8.2-fpm-alpine

RUN docker-php-ext-install pdo pdo_mysql

COPY src/ /var/www/html/

EXPOSE 9000CMD ["php-fpm"]


Nginx कॉन्फ़िगरेशन (docker/nginx/default.conf)

server {    listen 80;    server_name localhost;    root /var/www/html;

location / { try_files $uri $uri/ /index.php?$query_string; }

location ~ \\.php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}


इमेज बिल्ड करें

docker build -t my-php-app:latest -f docker/php/Dockerfile .


चरण 2: Kubernetes मेनिफेस्ट लिखना

अब जब इमेज तैयार है, तो क्लस्टर में डिप्लॉयमेंट के लिए मेनिफेस्ट बनाएँ।



PHP-FPM के लिए Deployment

apiVersion: apps/v1kind: Deploymentmetadata:  name: php-app  labels:    app: php-appspec:  replicas: 3  selector:    matchLabels:      app: php-app  template:    metadata:      labels:        app: php-app    spec:      containers:      - name: php-fpm        image: my-php-app:latest        ports:        - containerPort: 9000        env:        - name: DB_HOST          value: "mysql-service"        - name: DB_NAME          value: "mydb"        resources:          requests:            memory: "128Mi"            cpu: "250m"          limits:            memory: "256Mi"            cpu: "500m"


Nginx के लिए Deployment

apiVersion: apps/v1kind: Deploymentmetadata:  name: nginx  labels:    app: nginxspec:  replicas: 2  selector:    matchLabels:      app: nginx  template:    metadata:      labels:        app: nginx    spec:      containers:      - name: nginx        image: nginx:alpine        ports:        - containerPort: 80        volumeMounts:        - name: nginx-config          mountPath: /etc/nginx/conf.d      volumes:      - name: nginx-config        configMap:          name: nginx-config


ConfigMap for config

ब्लॉग

पुस्तक अनुशंसाएँ