Kubernetes nginx php部署
我需要一些关于nginx-php应用程序部署的帮助。我对kubernetes尝试运行php代码是完全陌生的。我在minikube上运行这个 这是我的Dockerfile文件Kubernetes nginx php部署,kubernetes,kubectl,minikube,Kubernetes,Kubectl,Minikube,我需要一些关于nginx-php应用程序部署的帮助。我对kubernetes尝试运行php代码是完全陌生的。我在minikube上运行这个 这是我的Dockerfile文件 FROM php:7.2-fpm RUN mkdir /app COPY hello.php /app 这是我的web.yaml文件,其中包括部署和服务 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: web-deployment la
FROM php:7.2-fpm
RUN mkdir /app
COPY hello.php /app
这是我的web.yaml文件,其中包括部署和服务
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: web-deployment
labels:
app: web-server
spec:
replicas: 1
template:
metadata:
labels:
app: web-server
spec:
volumes:
# Create the shared files volume to be used in both pods
- name: shared-files
emptyDir: {}
- name: nginx-config-volume
configMap:
name: nginx-config
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
volumeMounts:
- name: shared-files
mountPath: /var/www/html
- name: nginx-config-volume
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
- name: php-fpm
image: my-php-app:1.0.0
ports:
- containerPort: 80
volumeMounts:
- name: shared-files
mountPath: /var/www/html
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c", "cp -r /app/. /var/www/html"]
---
apiVersion: v1
kind: Service
metadata:
name: web-service
labels:
app: web-server
spec:
ports:
- port: 80
type: NodePort
selector:
app: web-server
这是nginx ConfigMap的我的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;
server_name _;
location / {
try_files $uri $uri/ =404;
}
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;
}
}
}
我已经使用创建了部署、服务和配置映射
kubectl create -f web.yaml
kubectl create -f configmap.yaml
在我通过ip和端口之后
minikube service web-service --url
我得到这样的ip
当我浏览这个Ip时,我得到一个类似于nginx 403禁止的响应
我在这里做错了什么?似乎nginx无法访问默认页面 将
index hello.php
添加到nginx配置中
location / {
index hello.php;
try_files $uri $uri/ =404;
}
或者,
通过访问您的应用程序
绝对URL
http://192.168.99.100:31170/hello.php
我试过上面的方法,但还是一样。当我检查nginx容器的日志时,它显示权限被拒绝。这一定与文件的权限有关,对吗?你必须先创建配置映射,然后再进行部署。在我的实验室中提到的相同更改之间,效果很好。删除部署和配置映射并重新创建。还要粘贴从kubectl日志web部署xxx nginx获得的错误。索引行中缺少分号,我刚刚更新了答案