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