Он работает, но мой php-fpm запускается медленно
Я собираю это как один модуль с одним контейнером php и один контейнер nginx
Код: Выделить всё
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-deployment
namespace: {{ .Values.namespace }}
labels:
app: php
spec:
replicas: {{ .Values.php.replicas }}
selector:
matchLabels:
app: php
minReadySeconds: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 25% # Specifies the maximum number of Pods that can be unavailable during the update process (in percentage or number).
maxSurge: 25% # Specifies the maximum number of additional Pods that can be created above the desired number of Pods during the update process (in percentage or number).
template:
metadata:
labels:
app: php
spec:
terminationGracePeriodSeconds: 15
initContainers:
- name: init-symfony
image: {{ .Values.php.image }}
command: ["/bin/sh", "-c"]
args:
- |
cp -R /var/www/symfony/. /var/www/share
cd /var/www/share
php bin/console c:c || true
chown www-data:www-data -R .
env:
- name: DATABASE_URL
value: 'postgresql://dummy:dummy@dummy:5432/dummy?serverVersion=14'
volumeMounts:
- name: www-storage
mountPath: /var/www/share
containers:
- name: php
image: {{ .Values.php.image }}
command: ["/bin/sh", "-c"]
args:
- |
php-fpm
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "sleep 15"]
# resources:
# requests:
# memory: "1024Mi"
# cpu: "50m"
# limits:
# memory: "2048Mi"
# cpu: "100m"
readinessProbe:
tcpSocket:
port: 9000
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 3
ports:
- containerPort: 9000
volumeMounts:
- name: php-config-volume
mountPath: /var/www/symfony/.env.local
subPath: php.conf
- name: www-storage
mountPath: /var/www/symfony
- name: key-storage
mountPath: /var/www/symfony/config/jwt
- name: nginx
image: {{ .Values.php.image }}
resources:
requests:
memory: "64Mi"
cpu: "10m"
readinessProbe:
httpGet:
path: /nginx/heal
port: 80
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 2
failureThreshold: 3
ports:
- containerPort: 80
volumeMounts:
- name: www-storage
mountPath: /var/www/symfony
volumes:
- name: php-config-volume
configMap:
name: php-config
- name: www-storage
emptyDir: {}
- name: key-storage
persistentVolumeClaim:
claimName: pv-key-claim
На моем nginx я создал /nginx/health, чтобы проверить, когда он будет готов.
Я попытался запустить свой модуль без запуска php-fpm и запустить его вручную с помощью команды php-fpm. (он пишет, что php-fpm готов обработать соединение), и для отображения моей страницы требуется много времени «около 30 секунд».
Одно из решений, которое я получаю, - это установить датчик готовности nginx на smt высокий уровень, fpm может запускаться без завершения работы старого модуля
но мне интересно, почему php-fpm сообщает мне, что он слушает запрос, но не полностью готов
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/791 ... w-to-start
Мобильная версия