Я пытаюсь создать там стручки 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