# PersistentVolume apiVersion: v1 kind: PersistentVolume metadata: name: gravcms-pv-storage labels: app: k8s-grav spec: storageClassName: nfs capacity: storage: 2Gi accessModes: - ReadWriteMany nfs: server: 10.75.168.100 path: "/nfs/html/gravcms" --- #PersistenteVolumeClaim apiVersion: v1 kind: PersistentVolumeClaim metadata: name: gravcms-pvc-storage labels: app: k8s-grav spec: storageClassName: nfs accessModes: - ReadWriteMany resources: requests: storage: 1Gi --- #Deployment apiVersion: apps/v1 kind: Deployment metadata: labels: app: k8s-grav name: k8s-grav spec: replicas: 1 strategy: {} selector: matchLabels: app: k8s-grav template: metadata: labels: app: k8s-grav spec: containers: - image: yobasystems/alpine-grav name: k8s-grav env: - name: VIRTUAL_HOST value: gravcms.oowy.fr ports: - containerPort: 80 name: http resources: requests: cpu: "1.0" memory: "1024Mi" limits: cpu: "1.0" memory: "1024Mi" volumeMounts: - name: gravcms-pv-storage mountPath: "/usr/html" volumes: - name: gravcms-pv-storage persistentVolumeClaim: claimName: gravcms-pvc-storage restartPolicy: Always --- # Service apiVersion: v1 kind: Service metadata: name: k8s-grav-service spec: type: ClusterIP selector: app: k8s-grav ports: - protocol: TCP port: 80 targetPort: 80 --- # Ingress apiVersion: extensions/v1beta1 kind: Ingress metadata: name: k8s-grav-ingress annotations: kubernetes.io/ingress.class: nginx spec: rules: - host: gravcms.oowy.fr http: paths: - path: / backend: serviceName: k8s-grav-service servicePort: 80