nginx - 在 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
文件不存在。
我是开发新手,也许我错过了一些东西。
谢谢!
解决方案
如果您使用 nginx 映像创建 pod,则该映像创建的配置将覆盖 pod 中的现有文件,并且也将反映在/mnt/data
路径中。
创建 pod 后,您必须使用 pod.yml 文件中的命令将配置文件移动到 usr/share/nginx/html。您可以映射/mnt/data
tmp 文件夹并在创建后使用命令将文件移动到,usr/share/nginx/html
这样每次创建新 pod 时,您的配置文件也会在所需路径中生成
推荐阅读
- python - 如何在版本控制中维护使用 venv 制作的 Python 项目
- discord.net - Discord.net 找出某人是否有角色
- python - 导出时如何使用pandas数据框na_rep和float_format?
- python-3.x - 通过 PPA 更新 Python3 后 Linux Mint 更新管理器不起作用
- reactjs - 如何从 react-create-app 创建一个捆绑文件
- python - 使用列表作为索引的 Pythonic 方式(没有 numpy)
- ios - 更新整个 pList 数组 - 快速
- node.js - 从一个数据库解析读取并写入事务中的另一个数据库
- c++ - 通过非阻塞套接字使用accept() 获取客户端连接
- php - 移动到其他服务器后管理面板中的 Prestashop FatalErrorException