当我们在Linux/Windows上部署apache kafka时,我们有log.dirs和broker.id属性。在裸机上,文件保存在各个主机实例上。然而,当通过K8s在公共云上部署时-必须有某种形式的卷装载,以确保事务日志文件保存在某个地方?
有人在K8s上这么做过吗?我指的不是Confluent (因为它是付费订阅)。
发布于 2019-05-28 18:06:49
据我所知,您只是在问如何处理Kubernetes中的存储。
这里有一个关于Kubernetes Storage的很棒的剪辑,我想推荐给你。
在Kubernetes中,您使用的是Volumes
容器中的
磁盘文件是短暂的,这给在容器中运行的非平凡应用程序带来了一些问题。首先,当Container崩溃时,kubelet将重新启动它,但文件将丢失- Container以干净状态启动。其次,当在
Pod中一起运行容器时,通常需要在这些容器之间共享文件。KubernetesVolume抽象解决了这两个问题。
有许多类型的卷,其中一些是特定于云的,如awsElasticBlockStore、gcePersistentDisk、azureDisk和azureFile。
here中还列出了其他类型,如glusterfs、iscsi、nfs和更多。
您还可以使用Persistent Volumes,它为用户和管理员提供了一个API,它从存储的使用方式中抽象出存储的提供方式的细节:
A
PersistentVolume(PV)是群集中由管理员调配的一块存储。它是集群中的资源,就像节点是集群资源一样。PVs是类似卷的卷插件,但具有独立于使用PV的任何单个pod的生命周期。此对象捕获存储实现的详细信息,可以是NFS、iSCSI,也可以是特定于云提供商的存储系统。
PersistentVolumeClaim (PVC)是用户对存储的请求。它类似于pod。Pod消耗节点资源,PV消耗PV资源。Pod可以请求特定级别的资源(CPU和内存)。声明可以请求特定的大小和访问模式(例如,可以安装一次读/写或多次只读)。
这里有一个指向Portworx Kafka Kubernetes in production: How to Run HA Kafka on Amazon EKS,GKE和AKS的链接,可能对你也很方便。
如果你对性能感兴趣,那么Kubernetes Storage Performance Comparison是一个很棒的10分钟阅读。
我希望这些资料能帮助您理解Kubernetes存储。
https://stackoverflow.com/questions/55499078
复制相似问题