apiVersion: apps/v1 kind: Deployment metadata: name: file-nginx namespace: infra labels: app: file-nginx spec: replicas: 1 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1 selector: matchLabels: app: file-nginx template: metadata: labels: app: file-nginx spec: containers: - name: nginx image: nginx:alpine imagePullPolicy: IfNotPresent ports: - containerPort: 80 securityContext: allowPrivilegeEscalation: false runAsUser: 0 volumeMounts: - name: html mountPath: /usr/share/nginx/data - name: nginx-conf mountPath: /etc/nginx/conf.d/default.conf subPath: default.conf startupProbe: httpGet: path: / port: 80 failureThreshold: 30 periodSeconds: 5 readinessProbe: httpGet: path: / port: 80 initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: httpGet: path: / port: 80 initialDelaySeconds: 5 periodSeconds: 10 resources: requests: cpu: 50m memory: 64Mi limits: cpu: 200m memory: 128Mi volumes: - name: html nfs: server: vega.haven path: /export/Fast - name: nginx-conf configMap: name: file-nginx-conf --- apiVersion: v1 kind: ConfigMap metadata: name: file-nginx-conf namespace: infra data: default.conf: | server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/data/file-nginx; index index.html; autoindex on; location / { try_files $uri $uri/ =404; } } --- apiVersion: v1 kind: Service metadata: name: file-nginx namespace: infra spec: selector: app: file-nginx ports: - protocol: TCP port: 80 targetPort: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: file-nginx namespace: infra annotations: nginx.ingress.kubernetes.io/enable-cors: "true" nginx.ingress.kubernetes.io/cors-allow-origin: "*" spec: ingressClassName: nginx rules: - host: file-nginx.haven http: paths: - path: / pathType: Prefix backend: service: name: file-nginx port: number: 80