首页 > 解决方案 > 在 AWS EKS 上使用持久卷附加 NGINX 配置文件

问题描述

我正在尝试将我的 NGINX 配置文件(配置、ssl 证书等)附加到我在 AWS EKS(弹性 Kubernetes 服务)上的 NGINX POD。阅读有关此内容的信息,我正在使用 Persistence Volume 和 Persistence Volume Claim,如后续教程 ( https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/ ) 中所示。

我的场景是:我需要将本地化的配置文件附加/mnt/data到 NGINX POD 中。

持久卷:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"

持久卷声明:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: task-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

NGINX 吊舱:

apiVersion: v1
kind: Pod
metadata:
  name: task-pv-pod
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: task-pv-claim
  containers:
    - name: task-pv-container
      image: nginx
      ports:
        - containerPort: 80
          name: "http-server"
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage

在运行 Persistent Volume、Persistent Volume Claim 和 NGINX POD 并访问正在运行的 NGINX POD 后/bin/bash,我的集群上的数据/mnt/data应该在/usr/share/nginx/html文件夹内,对吗?/usr/share/nginx/html但是当我访问文件夹中的 NGINX pod 时,我的/mnt/data文件不存在。

我是开发新手,也许我错过了一些东西。

谢谢!

标签: nginxkubernetes-podamazon-ekskubernetes-pvc

解决方案


如果您使用 nginx 映像创建 pod,则该映像创建的配置将覆盖 pod 中的现有文件,并且也将反映在/mnt/data路径中。

创建 pod 后,您必须使用 pod.yml 文件中的命令将配置文件移动到 usr/share/nginx/html。您可以映射/mnt/datatmp 文件夹并在创建后使用命令将文件移动到,usr/share/nginx/html这样每次创建新 pod 时,您的配置文件也会在所需路径中生成


推荐阅读