Kubernetes通过一行shell命令给pod中的zk节点添加权限

本文介绍如何在Kubernetes环境中使用Shell脚本部署Zookeeper,并实现通过非交互方式设置Zookeeper的节点权限。通过详细步骤说明如何利用zkCli.sh命令行工具配合kubectl命令执行特定的setAcl命令。
部署运行你感兴趣的模型镜像

问题

一个需求:需要写一个shell脚本部署Zookeeper,并且在脚本里需要去对zk的 /节点进行digest权限配置。
尝试了以下命令:

kubectl exec -ti podName -n namespace -- /bin/sh&&zkCli.sh&&setAcl digest:username:password

发现执行后只执行了zkCli.sh命令,后面的setAcl命令并未执行。
后来猜测,执行的命令需要在pod中可以识别才会执行,因此无法通过该命令直接执行setAcl

解决:

  • 将命令拆分后,最关键的一步就是如何通过kubectl exec 命令去执行 setAcl命令。
  • 正常情况下,setAcl是在zkCli.sh连接后进行命令。此时有交互,因此无法通过一个shell命令去执行。需要用其他方法。
  • 通过查阅博客,发现在非k8s环境下,可以通过下面的命令去获取到根节点的结构
zkCli.sh -server 127.0.0.1 ls /

尝试通过kubectl在之心zkCli.sh添加命令参数,去执行

kubectl exec -ti podName -n namespace -- zkCli.sh -server 127.0.0.1 ls /

执行后发现可以打印出节点信息。那么可以得出,在zkCli.sh可以通过添加参数命令的形式,以免交互方式执行命令。

kubectl exec -ti podName -n namespace -- /bin/sh&&zkCli.sh -server 127.0.0.1 \
setAcl / digest:username:BASE64(SHA1(password)):cdrwa

其他命令

ZooKeeper -server host:port -client-configuration properties-file cmd args
        addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE
        addauth scheme auth
        close
        config [-c] [-w] [-s]
        connect host:port
        create [-s] [-e] [-c] [-t ttl] path [data] [acl]
        delete [-v version] path
        deleteall path [-b batch size]
        delquota [-n|-b|-N|-B] path
        get [-s] [-w] path
        getAcl [-s] path
        getAllChildrenNumber path
        getEphemerals path
        history
        listquota path
        ls [-s] [-w] [-R] path
        printwatches on|off
        quit
        reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
        redo cmdno
        removewatches path [-c|-d|-a] [-l]
        set [-s] [-v version] path data
        setAcl [-s] [-v version] [-R] path acl
        setquota -n|-b|-N|-B val path
        stat [-w] path
        sync path
        version
        whoami

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

稷下学员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值