我尝试将我的NGINX配置文件(配置,ssl证书和其他文件)附加到AWS EKS(弹性Kubernetes服务)上的NGINX POD。如以下教程(https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/)所示,我正在使用“持久性卷”和“持久性卷声明”来了解这一点。
我的情况是:我需要将EBP
上本地化的配置文件附加到NGINX POD中。
持久卷:
/mnt/data
永久数量声明:
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/mnt/data"
NGINX POD:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3Gi
在运行Persistent Volume,Persistent Volume Claim和NGINX POD并使用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
访问正在运行的NGINX POD之后,位于/bin/bash
的群集上的数据应位于/mnt/data
内文件夹,对吗?但是,当我访问/usr/share/nginx/html
文件夹中的NGINX pod时,我的/usr/share/nginx/html
文件不存在。
我是新手,也许我错过了一些东西。
谢谢!
答案 0 :(得分:0)
如果您要使用nginx映像创建Pod,则由映像创建的配置将覆盖Pod中的现有文件,并且这些文件也将反映在/mnt/data
路径中。
在pod创建之后,必须使用pod.yml文件中的命令将配置文件移动到usr / share / nginx / html。您可以将/mnt/data
映射到tmp文件夹,并在创建后使用命令将文件移动到usr/share/nginx/html
,因此,每次创建新Pod时,配置文件也会在所需路径中生成