kubernetes - 无法在本地存储类上设置具有持久卷的 couchbase operator 1.2
问题描述
我正在尝试在我的本地系统上设置 couchbase operator 1.2。我按照以下步骤操作:
但是这样做的问题是,一旦系统或 docker 重置或 pod 重置,集群的数据就会丢失。
因此,我尝试通过添加具有本地存储类的持久卷来实现这一点,如文档中所述,但结果仍然相同。吊舱仍会重置。我找不到同样的原因。
因此,如果有人可以建议如何对本地存储类上的持久卷执行相同的操作。我已经成功创建了一个存储类。只是在启动集群并保持一致性时遇到问题。
这是我用来创建存储类和 pv 和 pv 声明的 yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: myssd
provisioner: local
apiVersion: v1
kind: PersistentVolume
metadata:
name: couchbase-data-2
labels:
type: local
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
storageClassName: myssd
hostPath:
path: "/home/<user>/cb-storage/"
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-test-claim-2
spec:
accessModes:
- ReadWriteOnce
storageClassName: myssd
resources:
requests:
storage: 1Gi
提前致谢
解决方案
持久卷使用hostPath
不持久。使用local
音量。与hostPath
卷相比,local
卷可以以持久且可移植的方式使用,而无需手动将 Pod 调度到节点,因为系统通过查看PersistentVolume
.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: couchbase-data
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /home/<User>/cb-storage/
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- node1
- node2
- node3
- node4
您不需要手动创建 PersistentVolume,因为存储类将在内部执行此操作。
此外,您还需要按照此处local
所述配置卷配置器,以便使用本地存储类进行动态配置。
推荐阅读
- sql - 返回 SQL Server 中所有符合 TRUE 条件的列
- amazon-web-services - 安装 AWS Glue ETL 库
- discord.js - channels.fetchMessage 在原始事件中未触发
- c++ - 如何在程序开始时生成一个唯一的随机数,然后获取该数字并在函数中调用它
- qt - QML:delegateChoice 中的 ComboBox 无法从 Controls 2 tableView 模型中读取值。(model.display 未定义)
- python - Django 选择与每个结果的最大字段值相关
- coq - 如何在字符串上的布尔等式上进行模式匹配,同时在 Coq 的证明中获得所需的命题等式?
- php - docker 中的 Laravel 和 redis
- swiftui - 如何在 SwiftUI 中找到真正的编译错误?(错误错误:静态成员前导不能用于 HorizontalAlignment 类型的实例)
- python - 如何在matplotlib中强制零(0)到轴的中心