apiVersion: apps/v1 kind: Deployment metadata: name: php-app labels: app: php-app spec: replicas: 3 # ใช้หลาย Replica เพื่อให้รองรับการอัปเดตแบบ Rolling strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 1 # ไม่ปิดมากกว่า 1 Pod ในแต่ละครั้ง # ไม่ปิดมากกว่า 1 Pod ในแต่ละครั้ง maxSurge: 1 # สร้าง Pod ใหม่ก่อนลบ Pod เก่า selector: matchLabels: app: php-app template: metadata: labels: app: php-app spec: imagePullSecrets: - name: gitlab-registry-secret containers: - name: php-app image: mobydick.netbay.co.th/sarun.netbay/kubernatestest:latest imagePullPolicy: Always ports: - containerPort: 80 volumeMounts: - name: php-ini-volume mountPath: /usr/local/etc/php/php.ini subPath: php.ini lifecycle: preStop: exec: command: ["/bin/sh", "-c", "sleep 10"] # รอให้ Request เสร็จก่อนปิด Pod livenessProbe: httpGet: path: / port: 80 initialDelaySeconds: 3 periodSeconds: 5 readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 3 periodSeconds: 5 volumes: - name: php-ini-volume configMap: name: php-ini-config