Knox(应用网关)
Apache Knox网关是一个为集群中的Apache Hadoop服务提供单点身份验证和访问的系统。
Knox网关为访问群集数据并执行作业以控制访问和管理群集的用户以及操作员简化了Hadoop安全性。网关作为服务器或服务器集群运行,提供对一个或多个Hadoop集群的集中访问。
在双网络环境中,必须在公共网络中部署Knox网关。如果LDAP服务器由Knox用于身份验证,则它将也安装在公共网络域中。网关应该可以使用主机名或IP地址访问群集中安装的服务。主节点位于双网络上,并且可以通过公共流量访问Knox网关和LDAP服务器。增值服务可以安装在任何主节点上。
1、核心功能
Apache Knox™网关是一个应用程序网关,用于与Apache Hadoop部署的REST API和UI进行交互。
Knox网关为与Apache Hadoop集群的所有REST和HTTP交互提供了单个访问点。
Knox提供三组面向用户的服务:
代理服务
- Apache Knox项目的主要目标是通过HTTP资源代理提供对Apache Hadoop的访问。
身份验证服务
- 用于REST API访问的身份验证以及用于UI的WebSSO流。LDAP / AD,基于标题的PreAuth,Kerberos,SAML,OAuth都是可用的选项。
客户端服务
- 客户端开发可以通过DSL脚本编写,也可以直接将Knox Shell类用作SDK。KnoxShell交互式脚本环境将groovy shell的交互式shell与Knox Shell SDK类结合在一起,以便与已部署的Hadoop集群中的数据进行交互。
我们主要用Knox来保护Spark UI,HDFS UI,Yarn UI,以及节俭服务器。当然,Knox也不只是服务于Hadoop,Spark,对于Web化的应用,基本上都可以使用Knox做保护,例如用Knox做Tomcat代理,主要是定义service.xml和rewrite.xml,即处理某些URL,如何处理。
Knox也支持Kerberos保护的扩展。
2、基本原理
Knox网关自带了一个用于测试LDAP服务,并定义好了一些用户,同时它所有的认证配置都默认指向这个测试的LADP。
3、核心概念