• Knox 代理各类组件


    Since:2022年8月9日09:34:13

    Auth:Hadi

    前言

    使用 knox 进行正向和反向代理,并且进行一些权限认证,使用起来很方便,特别是对于 NiFi 的相关权限认证(ldap),所以本章节讲下我使用 knox 代理的服务,以及相关的一些配置选项。

    knox 快速搭建

    这里只讲怎么快速搭建一个knox,使用 Knox Gateway – Announcing Apache Knox 1.6.1! 中最新版 knox 1.6.1 进行搭建操作。

    官方文档在这里 https://knox.apache.org/books/knox-1-6-0/user-guide.html#Quick+Start

    确保环境

    使用 java -version 进行java版本的查看,需求在1.8+

    创建knox用户

    useradd knox

    后续操作全部使用 knox 用户进行操作!

    su knox

    解压 knox包

    下载好安装包后,解压在安装目录,如:

    1. cd /usr/local/knox
    2. unzip knox-1.6.1.zip

    启动内置Ldap

    1. cd ${knox_home}
    2. ./bin/ldap.sh start

    创建master 秘钥

    ${knox_home}/bin/knoxcli.sh create-master ${自定义一个密码 master}

    这里创建了一个 master 秘钥,是给knox gateway的秘钥。

    及的记录这个 pem 文件的位置

    启动gateway

    ${knox_home}/bin/gateway.sh start

    启动完毕后使用 gateway.sh status 查看gateway的运行状态:

    登陆knox页面查看是否正常

    curl https://${knox_server}:8443/gateway/manager/admin-ui
    

    默认账号密码为 admin / admin-password

    如果发现关于白名单的报错,那可能是由于默认非本机访问报错:

    vim ${knox_server}/conf/gateway-site.xml:
    1. <property>
    2. <name>gateway.dispatch.whitelistname>
    3. <value>.*value>
    4. <description>The whitelist to be applied for dispatches associated with the service roles specified by gateway.dispatch.whitelist.services.
    5.         If the value is DEFAULT, a domain-based whitelist will be derived from the Knox host.description>
    6. property>

    如果登陆成功那就ok了 我们knox 已经搭建完成。

    正向代理各个大数据组件配置

    模板

    模板在${knox_home}/conf/topologies 中有一个 sandbox.xml

    默认已经帮我们把所有的配置好了,所以只需要更改下面service的ip就行。

    讲解

    随便讲一下需要注意的点:

    topologies目录下的xml文件才会被加载,如果下面有文件夹不会继续查找。

    在这里面的每个xml被视为一个集群,集群中可以有多个service。(这里的集群可以理解为相同的登陆验证方式&权限)

    对于我们的${topology}.xml文件主要是两部分:

    gateway

    主要包含各种配置项,如采取的服务,认证过期时间,认证域,dn映射等等:

    1.             <param>
    2.                 <name>main.ldapRealm.userDnTemplatename>
    3.                 <value>uid={0},ou=people,dc=hadoop,dc=apache,dc=orgvalue>
    4.                
    5.             param>

    service

    service 也没啥好说的,这里直接给配置:

    1.   <service>
    2.     <role>NIFIrole>
    3.     <url>http://10.254.xx.xx:10111/url>
    4.     <param>
    5.       <name>useTwoWaySslname>
    6.       <value>truevalue>
    7.     param>
    8.   service>
    9.   <service>
    10.     <role>YARNUIrole>
    11.     <url>http://10.254.xx.xx:8088/url>
    12.     <param>
    13.       <name>useTwoWaySslname>
    14.       <value>truevalue>
    15.     param>
    16.   service>
    17.   <service>
    18.     <role>HDFSUIrole>
    19.     <url>http://10.254.xx.xx:50070url>
    20.     <url>http://10.254.xx.xx:50070url>
    21.     <param>
    22.       <name>useTwoWaySslname>
    23.       <value>truevalue>
    24.     param>
    25.   service>
    26.   <service>
    27.     <role>HBASEUIrole>
    28.     <url>http://10.254.xx.xx:16010/url>
    29.     <url>http://10.254.xx.xx:16010/url>
    30.     <version>2.1.0version>
    31.     <param>
    32.       <name>useTwoWaySslname>
    33.       <value>truevalue>
    34.     param>
    35.   service>

    注意1:HBASE代理版本设置

    hbase 的代理,因为下面有两个版本:1.1 和 2.1 。默认情况下会加载1.1的代理解析,如果不手动设置version则可能出现:

    /gateway/sandbox/hbase/webui/HTTP ERROR 404

    注意2:Yarn 的ha 设置

    yarn ha 本身 knox 当前是不支持的,所以进行了一些更改已适配 如果进行去的节点不是 Acitve。

    我们可以这样实现:在${knox_home}/data/services 中添加一个 yarnui2,复制 yarnui中的内容,然后更改 rewrite.xml & service.xml 两个文件。

    更改也很简单:

    1. sed -i rewrite.xml 's/YARNUI/YARNUI2/g'
    2. sed -i service.xml 's/YARNUI/YARNUI2/g'
    3. sed -i rewrite.xml 's/\/yarn\//\/yarn2\//g'
    4. sed -i service.xml 's/\/yarn\//\/yarn2\//g'

    然后就可以变成:

     

  • 相关阅读:
    【元宇宙欧米说】从GameFi的视角讨论Web2到Web3的利弊
    allure测试报告生成逻辑--解决在Jenkins里打开allure报告页面后空白显示无数据问题(以window环境为例)
    Java 得到当前时间距离第二天凌晨还剩多少秒
    vue 封装水球图
    Python&C++相互混合调用编程全面实战-20python+QT+ffmpeg综合项目实战的需求和需要用到的库
    Linux Vim编辑器的基本使用
    【算法】求最小子集的和被5整除
    Java集合框架详解(二)——泛型
    基础语言-第15天-文件操作
    什么是RTC
  • 原文地址:https://blog.csdn.net/qq_36610426/article/details/126241898