由复制控制器控制并“隐藏”在Kubernetes服务后面的Pod如何写入/读取数据?如果我有一个需要持久保存用户上传图片的应用程序,那么我该把它存储在哪里?由于服务在前面,如果我使用卷,则无法控制其存储在哪个节点上。
由复制控制器控制并“隐藏”在Kubernetes服务后面的Pod如何写入/读取数据?如果我有一个需要持久保存用户上传图片的应用程序,那么我该把它存储在哪里?由于服务在前面,如果我使用卷,则无法控制其存储在哪个节点上。
https://kubernetes.io/docs/concepts/storage/volumes/#gcepersistentdisk
我们希望支持其他类型的网络附加存储(iSCSI,NFS等),但我们还没有机会构建它们。欢迎提交拉取请求!;)GKE 允许您创建磁盘来存储数据,并且此存储区域可以链接到多个 Pod。请注意,您的集群和磁盘必须在同一区域/地区。
gcloud compute disks create disk1 --zone=zone_name
现在您可以使用此磁盘来存储来自Pod的数据。 这是一个简单的MongoDB ReplicationController YAML文件,它使用Disk1。这可能不是最有效的方法,但这是我知道的最简单的方法。
apiVersion: v1
kind: ReplicationController
metadata:
labels:
name: mongo
name: mongo-controller
spec:
replicas: 1
template:
metadata:
labels:
name: mongo
spec:
containers:
- image: mongo
name: mongo
ports:
- name: mongo
containerPort: 27017
hostPort: 27017
volumeMounts:
- name: mongo-persistent-storage
mountPath: /data/db
volumes:
- name: mongo-persistent-storage
gcePersistentDisk:
pdName: disk1
fsType: ext4
即使您的 Pod 被删除或替换,磁盘 1 仍将存在。