我在GKE上运行了一个Kubernetes集群,并使用bitnami图表安装了minio实例。目前,minio是在独立模式下运行的,作为一个带有一个吊舱的部署。
我面临的问题是,每次我想升级minio资源时,我都会遇到停机问题,直到新的配置重新部署吊舱为止。
我曾想过将minio更改为分布式模式,这意味着它将由一个状态集来部署,使用updateStrategy: RollingUpdate set和podManagementPolicy: OrderedReady,因为现在它解决了问题,但是:我正在丢失存储在PV上的所有数据,因为状态集不能使用部署所使用的PV,而且我正在试图找到将所有当前数据从部署迁移到状态集的方法。
谢谢你的帮助!
发布于 2022-10-05 07:09:50
您可以正常地使用卷,就像我们在deployment中使用有状态集一样,但是,您不会得到自动PVC配置的魔力。
如果您有现有的of,您可以将它附加到有状态集的单个副本上。一旦您将缩放有状态集,它将创建该问题。
在这种情况下,迁移数据将是一个很好的选择。
只是为了裁判,
例子:
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: redis
spec:
serviceName: "redis"
selector:
matchLabels:
app: redis
updateStrategy:
type: RollingUpdate
replicas: 3
template:
metadata:
labels:
app: redis
spec:
containers:
- name: redis
image: redis
ports:
- containerPort: 6379
volumeMounts:
- name: redis-data
mountPath: /usr/share/redis
volumes:
- name: redis-data
persistentVolumeClaim:
claimName: redis-data-pvc选项: 1
最后,PVC只是磁盘,除非您使用NFS左右,否则您可以将安装到PVC上的安装到PVC上,并将所有数据上传到存储桶中并进行还原。如果要运行状态集的多个副本,则可能需要将数据还原到多个荚,这不是一个可伸缩的选项。
选项: 2
如果您有PV,就像在磁盘中一样,您可以克隆磁盘以复制您正在寻找的副本。其想法是使用预先存在的持久性磁盘作为 PersistentVolumes,使用-o创建PV,-1 post修复程序。
volumeClaimTemplates:
- metadata:
name: PVC_TEMPLATE_NAME
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 100Gi参考文献:状态集
选项:3
您可能希望使用该工具而不是选项2手动选项,您可以签出维勒诺
然而,下面的ref并不确切,您可以使用它作为ref,并以不同的名称还原多个卷,并将它们附加回有状态集副本。
参考文献:https://gist.github.com/deefdragon/d58a4210622ff64088bd62a5d8a4e8cc
https://stackoverflow.com/questions/73946543
复制相似问题