Kubernetes - соедините Laravel с nginx - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь создать там стручки Kubernetes, все успешно созданы, но приложение не видимо для nginx. nginx просматривает только html-файл по умолчанию, а не файл проекта.

Файл конфигурации Nginx.yaml, в котором я создаю конфигурацию, службу и развертывание

apiVersion: v1
kind: ConfigMap
metadata:
  name: nginx-conf
data:
  nginx.conf: |

    server {
        listen 80;
        index index.php index.html;
        root /usr/share/nginx/html;

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass app-service:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }

        location / {
            try_files $uri $uri/ /index.php$query_string$args;
            gzip_static on;
        }
    }

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.17.0-alpine
        ports:
        - containerPort: 80
        volumeMounts:
        - mountPath: /etc/nginx/conf.d
          readOnly: true
          name: nginx-conf

      volumes:
      - name: nginx-conf
        configMap:
          name: nginx-conf
          items:
            - key: nginx.conf
              path: nginx.conf

---

apiVersion: v1
kind: Service
metadata:
  name: nginx
spec:
  type: LoadBalancer
  ports:
  - port: 80
  selector:
    app: nginx

В приложенииФайл .yaml. Я загружаю образ докера, конфигурацию или доступ к базе данных, а также создание конфигурации, обслуживание и развертывание.

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-conf
  labels:
    name: app-conf
data:
  env: |
    APP_NAME=SSO
    APP_ENV=local
   ...
---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
spec:
  replicas: 1
  selector: 
    matchLabels:
      app: app

  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
      - name: sso
        image: docker.io/guten/laravel-minikube:2
        imagePullPolicy: Always
        command: ["/bin/sh", "-c", "ln -s /var/www /usr/share/nginx; /var/www/entrypoint.sh; php-fpm;"]
        ports:
        - containerPort: 80
        envFrom:
        - configMapRef:
            name: app-conf
        env:
        - name: DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-pass
              key: password
        volumeMounts:
        - name: app-conf
          subPath: .env
          mountPath: /var/www/.env

      volumes:
      - name: app-conf
        configMap:
          name: app-conf
          items:
            - key: env
              path: .env

---

apiVersion: v1
kind: Service
metadata:
  name: app-service
  labels:
    app: app-service
spec:
  type: NodePort
  ports:
    - protocol: TCP
      port: 9000
      nodePort: 30080
  selector:
    app: app
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...