Задать вопрос

Похоже не применяется конфиг nginx в k8s, в чем проблема?

В рамках теста поднял миникуб, закинул туда nginx+php-fpm+mysql и приложение на slim'e. Сначала всё работало, затем решил навести "порядок", растаскал всё по папкам. И переходя на тестовый домен теперь вижу 503 ошибку. Попробовал подключиться к поду, похоже что конфиг nginx'a не подтянулся, не смотря на наличие файла config.yaml, и вроде бы, верно указанных volume, volumeMount...
Сейчас вот 2 часа просидел пытался понять что не так и почему раньше работало. Никаких продвижений нет абсолютно. И логи пустые, или я не туда смотрю вообще.

https://github.com/ivekov/minikubeNginxPhpMysql

Есть подозрение что проблема в этих файлах:

/opt/docker/nginxPhpFpm/configs/backend/crud/config.yaml
kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-config
data:
  nginx.conf: |
    events {
    }
    http {
      server {
        listen 80 default_server;
        listen [::]:80 default_server;
        # Set nginx to serve files from the shared volume!
        root /var/www/html/public;
        server_name _;
        index index.php;
        location / {
          try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ \.php$ {
          include fastcgi_params;
          fastcgi_param REQUEST_METHOD $request_method;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_pass 127.0.0.1:9000;
        }
      }
    }


/opt/docker/nginxPhpFpm/configs/backend/crud/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-php-app
spec:
  replicas: 2
  selector:
     matchLabels:
        app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      volumes:
        # Create the shared files volume to be used in both pods
        - name: app-files
          hostPath:
            path: /opt/docker/nginxPhpFpm/app/backend
            type: Directory
        - name: nginx-config-volume
          configMap:
            name: nginx-config
      containers:
        - name: backend
          image: nginx
          ports:
            - containerPort: 80
          volumeMounts:
            - name: app-files
              mountPath: /var/www/html
            - name: nginx-config-volume
              mountPath: /etc/nginx/nginx.conf
              subPath: nginx.conf
          env:
            - name: DB_HOST
              value: mysql
            - name: MYSQL_ROOT_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mysql-pass
                  key: password
        - name: php-fpm
          image: ivekov/php-fpm
          volumeMounts:
            - name: app-files
              mountPath: /var/www/html
          lifecycle:
            postStart:
              exec:
                command: ["/bin/sh", "-c", "cp -r /app/. /var/www/html"]


Был бы очень признателен за помощь...
  • Вопрос задан
  • 137 просмотров
Подписаться 4 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы