在Kubernetes上部署Alluxio
Alluxio可以在Kubernetes上运行。本指南演示了如何使用Docker映像或helm中包含的规范在Kubernetes上运行Alluxio
先决条件
一个Kubernetes集群(版本> = 1.8)。在默认规范下,Alluxio workers可以通过设置sizeLimit参数来决定emptyDir卷的大小。这是Kubernetes 1.8版本中的一个Alpha特性。在使用前请确保此功能已启用。
一个Alluxio Docker镜像alluxio/alluxio。如果使用私有Docker注册表,请参阅Kubernetes documentation。 确保Kubernetes网络策略允许应用程序(Alluxio客户端)和Alluxio Pods之间在已定义端口上的连接。
基本设置
本教程介绍了在Kubernetes上的基本Alluxio安装。 Alluxio支持在Kubernetes上两种安装方法:使用helm图表或使用kubectl。如果可选,helm是首选安装Alluxio方法。如果没法使用helm安装或需要额外定制化部署,则可以直接通过原生Kubernetes资源规范使用kubectl。
注意:从Alluxio 2.3起,Alluxio仅支持helm 3。 参阅如何从helm 2迁移到helm 3。
部署
访问Web UI
可以使用端口转发从kubernetes集群外部访问Alluxio UI。
注意:第一个master Pod i = 0。当运行多个masters时,转发每个主机的端口。仅首席maste为Web UI提供服务。
###验证
一旦准备就绪,就可以从master Pod访问Alluxio CLI并运行基本的I/O测试。
从master Pod,执行以下命令
(可选)如果Alluxio master使用持久卷,则卷的状态应更改为CLAIMED,卷声明的状态应为 BOUNDED。你可以验证其状态如下
高级设置
POSIX API
一旦Alluxio部署到Kubernetes上,客户端应用程序可以通过多种方式连接。对于使用POSIX API的应用程序,应用程序容器可以通过挂载Alluxio FileSystem方式连接。
为了使用POSIX API,首先部署Alluxio FUSE守护程序。
短路访问
短路访问使客户端可以绕过网络接口直接对worker执行读写操作。对于性能至关重要的应用程序,建议对Alluxio启用短路操作,因为当与Alluxio worker共置时,可以增加客户端的读写吞吐量。
启用短路操作的属性。 此特性默认启用的,但在Kubernetes环境下需要额外的配置才能在正常工作。有关如何配置短路访问参见以下各节。
禁用短路操作。 要禁用短路操作,该操作取决于你是如何部署的Alluxio。
注意:如前所述,禁用对Alluxio workers短路访问会导致更低I/O吞吐量
短路模式。 使用短路访问有两种模式
A.local 在这种模式下,如果客户端主机名与worker主机名匹配,Alluxio客户端和本地Alluxio worker就能互识。 这称为主机名自省。 在这种模式下,Alluxio客户端和本地Alluxio worker共享Alluxio worker的分层存储。
B. uuid 这是在Kubernetes中使用短路访问的默认策略
如果客户端或工作容器在使用虚拟网络,则其主机名可能不匹配。在这种情况下,请将以下属性设置为使用文件系统检查来启用短路操作,并确保客户端容器按域套接字路径挂载目录。 如果worker UUID位于客户端文件系统上,则启用短路写操作。
域套接字路径。 域套接字是一个应挂载在以下上的卷:
所有Alluxio workers
打算通过Alluxio进行读写的所有应用容器。
该域套接字卷可以是PersistentVolumeClaim或一个hostPath Volume。
使用PersistentVolumeClaim。 默认情况下,此域套接字卷为PersistentVolumeClaim。 你需要为此PersistentVolumeClaim发放一个PersistentVolume。这个PersistentVolume应该是local或hostPath。
使用hostPath卷。 您也可以直接定义workers将hostPath Volume用于域套接字。
验证。 要验证短路读取和写入,请监控以下显示的指标
Web UI的指标
Domain Socket Alluxio Read和Domain Socket AlluxioWrite或metrics json as
cluster.BytesReadDomain和cluster.BytesWrittenDomain或the fsadmin metrics CLI as
Short-circuit Read (Domain Socket)和Alluxio Write (Domain Socket)
故障排除
Last updated