Kubernetes php-fpm и nginx медленно запускаютсяPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Kubernetes php-fpm и nginx медленно запускаются

Сообщение Anonymous »

Я пытаюсь разместить проект php Symfony на Kubernetes!
Он работает, но мой 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
Итак, на этой диаграмме, когда я перезапускаю или выполняю последовательное обновление, мой первый контейнер ждет готовности второго (поэтому php-fpm работает на порту 9000, а nginx на 80)
На моем nginx я создал /nginx/health, чтобы проверить, когда он будет готов.
Я попытался запустить свой модуль без запуска php-fpm и запустить его вручную с помощью команды php-fpm. (он пишет, что php-fpm готов обработать соединение), и для отображения моей страницы требуется много времени «около 30 секунд».
Одно из решений, которое я получаю, - это установить датчик готовности nginx на smt высокий уровень, fpm может запускаться без завершения работы старого модуля
но мне интересно, почему php-fpm сообщает мне, что он слушает запрос, но не полностью готов
Спасибо :D !

Подробнее здесь: https://stackoverflow.com/questions/791 ... w-to-start
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»