范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

ApachePulsar学习笔记16租户命名空间创建,用户Token和权限配置

  前面我们使用Helm在Kubernetes中部署了生产可用的Pulsar集群,并将集群接入到Prometheus监控系统。
  作为Pulsar集群的管理员,将这套生产可用的Pulsar集群交付给开发使用时,还需要做好租户和命名空间划分和创建,用户角色和权限配置。 本节将根据实践介绍一下Pulsar集群管理员如何做这些工作的。
  我们部署Pulsar集群时开启了基于非对称秘钥(asymmetric)的JWT认证,需要使用私钥为客户端应用的普通用户创建Token,将Token分发给客户端应用。 Pulsar的权限统一在命名空间级别进行管理,在为普通用户创建好Token后,需要在命名空间的级别上对用户角色进行授权。 JWT Token管理
  pulsar manager中提供了一个token管理的页面,但是Pulsar官方的Helm Chart部署的pulsar manager,目前还不支持开启了非对称秘钥(asymmetric)的JWT认证的pulsar集群。 如果尝试在这个页面创建token的话,会报错。这是因为需要在pulsar manager的配置application.properties中设置: jwt.broker.token.mode=PRIVATE jwt.broker.public.key=file:///path/broker-public.key jwt.broker.private.key=file:///path/broker-private.key
  而当前2.7.13版本的pulsar-helm-chart还不支持对这个配置文件进行定制,同时也不支持以 PRIVATE_KEY 环境变量的形式进行配置。
  在部署pulsar时,用于创建和验证token的非对称密钥对,以名称为 pulsar-token-asymmetric-key  Secret被创建到了K8S中。因此,可以放弃使用pulsar manager来管理token,改使用pulsar 命令行工具的形式。 使用pulsar-helm-chart部署pulsar时,为我们在k8s集群中部署了SatefulSet pulsar-toolset的Pod,这个里面提供了用于管理pulsar的命令行空间pulsar 和pulsar-admin 等,但遗憾的是并没有将Secret pulsar-token-asymmetric-key 中的PRIVATE私钥以文件的形式挂载到Pod中,同时pulsar-helm-chart当前也不支持这块的定制配置。
  只好再手动部署一个 pulsar-admin-toolset ,通过手动编写一个k8s deployment的manifest文件来部署pulsar-admin-toolset,并将 pulsar-token-asymmetric-key 私钥挂载到Pod中。kind: Deployment apiVersion: apps/v1 metadata:   name: pulsar-admin-toolset   namespace: pulsar spec:   replicas: 1   selector:     matchLabels:       app: pulsar       component: admin-toolset       release: pulsar   template:     metadata:       labels:         app: pulsar         cluster: pulsar         component: admin-toolset         release: pulsar     spec:       volumes:         - name: token-private-key           secret:             secretName: pulsar-token-asymmetric-key             items:               - key: PRIVATEKEY                 path: private.key             defaultMode: 420         - name: client-token           secret:             secretName: pulsar-token-admin             items:               - key: TOKEN                 path: client/token             defaultMode: 420       containers:         - name: pulsar-toolset           image: harbor.example.com/library/apachepulsar/pulsar-all:2.7.4           command:             - sh             - "-c"           args:             - >               bin/apply-config-from-env.py conf/client.conf;               bin/apply-config-from-env.py conf/bookkeeper.conf;                sleep 10000000000           envFrom:             - configMapRef:                 name: pulsar-toolset           resources:             limits:               cpu: "2"               memory: 1Gi             requests:               cpu: 100m               memory: 256Mi           volumeMounts:             - name: token-private-key               readOnly: true               mountPath: /pulsar/token-private-key             - name: client-token               readOnly: true               mountPath: /pulsar/tokens           imagePullPolicy: IfNotPresent       nodeSelector:         node-role.kubernetes.io/pulsar: pulsar       securityContext: {}       imagePullSecrets:         - name: regsecret       tolerations:         - key: dedicated           operator: Equal           value: pulsar           effect: NoSchedule
  私钥被以文件 /pulsar/token-private-key/private.key 的形式挂载到了POD的容器中,这样集群管理员就可以进入到容器中执行下面的命令创建Token:bin/pulsar tokens create --private-key file:///pulsar/token-private-key/private.key --subject 
  bin/pulsr/tokens create 命令的具体参数如下:    create      Create a new token       Usage: create [options]         Options:           -e, --expiry-time             Relative expiry time for the token (eg: 1h, 3d, 10y). (m=minutes)              Default: no expiration           -pk, --private-key             Pass the private key for signing the token. This can either be:              data:, file:, etc..           -sk, --secret-key             Pass the secret key for signing the token. This can either be:              data:, file:, etc..           -a, --signature-algorithm             The signature algorithm for the new key pair.             Default: RS256             Possible Values: [NONE, HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384, ES512, PS256, PS384, PS512]         * -s, --subject             Specify the "subject" or "principal" associate with this token
  注意,可以使用 -e 指定token失效时间,但一般为应用创建的token会设置为永久有效,但如果设置了永久有效,则分发出去的某个用户角色(subject)的token是无法撤回的。 如果确实需要撤回,则只能将这个用户角色(subject)在pulsar相关租户和命名空间中的权限删除,这样这个token虽然还是可以通过认证,但是却无权进行相关操作了。授权管理
  解决了Token创建的问题,来看一下授权管理,Pulsar的权限统一在命名空间级别进行管理,在为普通用户创建好Token后,需要在命名空间的级别上对用户角色进行授权。
  例如,我们使用下面的命令为用户角色foo创建了token。 bin/pulsar tokens create --private-key file:///pulsar/token-private-key/private.key --subject
  可以使用下面的命令为用户角色foo进行授权: bin/pulsar-admin namespaces grant-permission tenant1/namespace1 --actions produce,consume --role foo
  这样用户角色foo就在 tenant1/namespace1 这个命名空间下具有produce 和consume 的权限了,客户端应用程序可以使用foo的token访问这个命名空间下的topic。
  可以使用下面的命令查看命名空间下的所有授权: bin/pulsar-admin namespaces permissions tenant1/namespace1
  可以使用下面的命令收回某个用户角色在某个命名空间下的授权: bin/pulsar-admin namespaces revoke-permission tenant1/namespace1 --role foo
  除了使用 pulsar-admin 外,还可以在pulsar-manager中的namespace管理页面中的POLICES中配置授权。参考https://pulsar.apache.org/docs/en/administration-pulsar-manager/

中国最长姓氏,一眼望不到头,太长了中国复姓说起中国的复姓,相信很多人最先想到的就是欧阳司马夏侯等耳熟能详的姓氏。可是又有多少人知道,其实针对复姓的复,并没有敲定一定就是双字姓。因为在中国的姓氏文化中,复姓还包含更多那些年你读错的名字,覃姓从来没读对过覃姓在百家姓中,有很多姓氏是多音字。作为姓氏的时候,只能读一个音,倒也不稀奇。可是在众多的姓氏宗亲里,有一个姓,却有3个读音,很多人基本没读对过,它就是今天我们要说的覃姓。覃姓来源苏三离开的洪洞县,居然是赵姓的起源地苏三起解喜欢京剧的人,对于苏三起解一定不陌生,尤其是那句苏三离了洪洞县,将身来到大街前。基本也成为了家喻户晓的经典金句。其实苏三离开的这个洪洞县其实一点都不简单,按照现有的资料显示最容易读错的复姓,看完拼音,语文白学了普通的汉字,在作为姓氏的时候改变读音,也是一件见怪不怪的事情。可是在中国的两字复姓中,有一个姓氏,两个字都是多音字,被很多姓氏文化研究者称为最容易读错的复姓,看完姓氏的拼音后,很多牛姓认宗亲的方法,好接地气,绝对不会找错人近几年,随着大家生活水平的提高,很多人对于精神方面的追求,也不断刷新。在精神方面的追求中,寻根问祖是很多人首选的一种方式,通过自己的姓氏,寻找姓氏根源也成为了很多家族不断追问的一条李姓介绍自己,往往喜欢说木子李,有原因的李姓图腾中国很多人,在介绍自己的名字的时候,总喜欢把姓氏拆开来说。这样的行为,很多人认为是为了怕别人读错。其实除此之外,还有一个很重要的原因,是有些姓氏把字拆开来介绍,其中还是有着沈百万一夜暴富,差点让沈姓断了根,好险中国姓氏文化,是记录中华五千年文化历史的一个很重要的文化分支。根据历史资料记载,在众多的姓氏发展中,有的姓氏也曾遭遇过一些灭顶之灾,沈姓就是其中之一。沈姓早在明朝嘉靖年间,就有一个丛姓的来源,差点姓成了喜丛氏宗祠在中国的姓氏文化当中,很多姓氏和姓氏之间,都是有关联的。相传,金姓丛姓本是一家,根据一些资料的记载。在西汉汉武帝时,因为上有文景之治,为其储备了丰厚的物质基础,而自己还有卫众多姓氏源于妫姓,为何妫姓却濒临消失的窘境?妫姓说起中国的姓氏文化,很多姓氏都有一定的来源。最近,在统计各大姓氏文化的时候,发现很多姓氏都是来源于妫(gu)姓。可让人有点意外的事,作为上古八大姓氏之一的妫姓,如今却濒临消失的李姓在唐朝活得最讲究,这规矩放现代,会火李氏图腾李作为中国最具代表的大姓之一,据不完全的数据统计,人口大约有八千七百多万,分布很广,约占全国汉族人口的7。94。我国唐代大诗人李白就层书写豪壮诗篇我李百万叶,柯条遍中州,天京东618当日优惠1000价位小米荣耀360手机谁称王?随着6月18日的日渐临近,国内各大手机厂商的逐鹿之争也进入血拼阶段,优惠举措不断,从而铸造出一批极具诱惑力的超高性价爆品机型,那么在国内拥有用户最多的10001500元价位,京东6
蔡司与vivo首秀正式发布!vivoX60系列表现让人爱了在漫长的预热后,vivoX60系列终于在昨晚(12月29日)正式发布。发布会上,官方对此前已被官宣的外观性能系统,以及影像系统等方面进行了详细解读,其信息量远比预热期中所公布的内容做大数据行业需要具备的基础知识有哪些?大数据的发展,让越来越多的人开始关注它。很多人都开始想要进入大数据行业,毕竟如今大数据行业的需求是很大的,所以越来越多的人开始转行选择大数据进行发展。但很多转行的人,是没有相关基础全新iPadmini动手玩统一设计语言,但果冻屏现象存在买前生产力,买后爱奇艺是许多人对iPad和一众平板电脑的看法,不过与苹果拼命强调生产力的iPadPro不同,iPadmini似乎从一开始就是为娱乐准备的,如今这款小平板终于和iPa直击2021苹果秋季发布会新iPad和有史以来变化最大的iPadmini和去年一样,苹果今年的秋季发布活动同样以线上直播的形式登场。伴随着开场表演的结束,苹果CEO蒂姆库克走上舞台。简单回顾了一下,终于进入正式环节,首先登场的是我们的老朋友iPad。新渐变色也能带来小清新效果?vivoS9印象拾光配色图赏对于一部手机来说,每个人对它的需求点都各有不同。打游戏的小伙伴更注重配置摄影爱好者更关心镜头理工男更关心续航与闪充体验。不过这其中也存在一些共通性,那就是所有人对于产品外观的依赖性AirPods3可能没降噪?支持主动降噪的vivoTWS2即将发布此前有消息显示,苹果或于本月发布第三代AirPods新品。据了解,这次的AirPods3或在设计上进行小改,但可能仍没有主动降噪功能。反观国内TWS耳机市场,华米OV在近期纷纷推新犹豫就会败北,iQOONeo5与红米K40Pro应该这么选话说这刚刚过去的3月份对于智能手机行业来说可真是热闹,国内各大厂商接连发布了十余款手机新品,看的机友们应接不暇。纵观当下手机市场,2K3K价位段是各大手机厂商发力秀肌的主战场。在这iQOONeo5活力版预售开启,成618剁手的不二之选?随着iQOO在国内手机市场中影响力的逐渐提升,越来越多的消费者开始对其加以关注,iQOONeo5活力版的发布就是iQOO近期的大事件之一。在经过数日的官方预热之后,该机的全部配置细iQOO78256GB传奇版开售,五一前夕实现精准卡位?不久前,iQOO手机的一项扩容举动引起了众人注意。在原有8GB128GB版的价格基础上,仅增加一百元就能入手8GB256GB版的iQOO7,这样的价格差在业内可以称得上是史无前例的随时都能DIY的手机你见过?vivoS10借助光致变色材料实现了众所周知,平日中大家在选择手机时多是先看配置和外观,其次去选择存储容量规格,最后还有一个可供消费者选择的项目,就是产品颜色。虽然手机已经从材质素色(如塑料金属原色等)衍生至如今的多为手机拍照赋能,是vivoVISION影像计划的使命?随着智能手机影像功能的不断提升,越来越多的人开始在选择手机时注重手机的拍照体验,一个属于影像的智能手机新时代已经来临。或许平日中的你只是职场白领学生,甚至是遛弯大爷,但当你拿起手机