我目前正在尝试使用 Kubernetes 配置 Logstash 集群,并且我希望每个 Logstash 节点都使用管道将卷安装为只读。然后,这个相同的卷将以读/写方式安装在一个管理实例上,我可以在其中编辑配置。
这对 K8s 和 GCEPersistentDisk 可行吗?
我目前正在尝试使用 Kubernetes 配置 Logstash 集群,并且我希望每个 Logstash 节点都使用管道将卷安装为只读。然后,这个相同的卷将以读/写方式安装在一个管理实例上,我可以在其中编辑配置。
这对 K8s 和 GCEPersistentDisk 可行吗?
通过 Logstash,我相信您的意思是 ELK 集群。Logstash 只是一个日志转发器,而不是存储端点。
并不真地。这是不可能的GCEPersistentDisk
。这更多的是 GCE 限制,您一次只能在实例上挂载一个卷。
此外,正如您在文档中看到的那样,支持 theReadWriteOnce
和 theReadOnlyMany
但不是同时支持。
重要的!一个卷一次只能使用一种访问模式安装,即使它支持多种访问模式。例如,单个节点可以将 GCEPersistentDisk 挂载为 ReadWriteOnce,也可以将多个节点挂载为 ReadOnlyMany,但不能同时挂载。
您可以实现这一点,但只需在单个 K8s 节点上使用单个卷,然后将卷分区以供同一节点上的不同 Elasticsearch pod 使用,但这会破坏拥有分布式集群的目的。
如果您的节点位于不同的 Kubernetes 节点中并且每个节点都有单独的卷,则 Elasticsearch 可以正常工作。