问题

一个需求:需要写一个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 argsaddWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVEaddauth scheme authcloseconfig [-c] [-w] [-s]connect host:portcreate [-s] [-e] [-c] [-t ttl] path [data] [acl]delete [-v version] pathdeleteall path [-b batch size]delquota [-n|-b|-N|-B] pathget [-s] [-w] pathgetAcl [-s] pathgetAllChildrenNumber pathgetEphemerals pathhistorylistquota pathls [-s] [-w] [-R] pathprintwatches on|offquitreconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]redo cmdnoremovewatches path [-c|-d|-a] [-l]set [-s] [-v version] path datasetAcl [-s] [-v version] [-R] path aclsetquota -n|-b|-N|-B val pathstat [-w] pathsync pathversionwhoami

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

  1. Linux在文件第一行添加字符,使用shell命令给文件中每一行的前面、后面、指定列添加字符...

    shell给一个文件中的每一行开头插入字符的方法:awk '{print "X"$0}' fileName shell给一个文件中的每一行结尾插入字符的方法:awk '{print ...

  2. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?

    原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...

  3. shell命令卸载mysql_centos8中的MySQL卸载和安装

    centos8中的MySQL卸载和安装 前言 前几天在自己的服务器上安装了一个NDB集群[而且还没有成功] 放弃治疗后用一台没有mysql的服务器实现了单机版本的集群. 本来以为这事到这就结束了,结果 ...

  4. linux vim 执行shell命令行,Linux中vim和shell

    在Linux系统中一切皆文件,配置服务其实就是在修改其配置文件的参数,而在日常文件中肯定少不了的就是编辑文档,这就离不开vim,而vim之所以能够得到广大厂商的青睐与用户的认可,原因在于vim编辑器中 ...

  5. dpi shell命令 安卓_android 中 dumpsys 命令使用

    adb shell dumpsys,默认打印出当前系统所有 service 信息,在后面可加上具体的服务名 需要列出当前运行的服务,可运行: adb shell dumpsys | findstr D ...

  6. python获取shell输出及返回码_如何执行shell命令获取Python中命令后的输出和pwd

    我将stdout重定向到pwd命令的stderr.如果stdout为空且stderr不是路径,那么stderr是命令的错误 import subprocess as sub def execv(com ...

  7. 一行shell命令实现代码行数统计

    一行命令实现代码行数统计     1. 基本版 find . -name "*.cpp"|xargs wc -l|grep "total"|awk '{prin ...

  8. (sudo命令)linux中给普通用户添加root权限

    1 打开/etc/sudoers文件 vi /etc/sudoers 2 在root ALL=(ALL) ALL下方添加一行代码 例如 zhangsan=(ALL)ALL 3保存退出以后使用sourc ...

  9. C#中操作XML (节点添加,修改,删除完整版)

    创建xml http://www.cnblogs.com/bingzisky/archive/2008/08/26/1276875.html 1.新建一个XML文件(bookstore.xml)如下: ...

最新文章

  1. 盛大文学推出“一人一书”计划,发布电子书战略
  2. 用户表单事件(focus事件)
  3. windows下程序开机自启动(任务计划程序)
  4. IIS 8.5配置.net网站[花了半个多小时]
  5. 安卓连接mysql代码_用Eclipse开发android,怎么连接到数据库,最好有详细程序代码...
  6. Spring Cloud Zuul网关(快速搭建)
  7. ubuntu虚拟机安装Gitlab后出现“Whoops, GitLab is taking too much time to respond.”
  8. 从DOM到虚拟DOM——前端DOM发展史、性能与产能双赢背后的思考
  9. dbf文件转excel_Excel批量转PDF,关键一步不能忘
  10. (JS)蔚蓝网上书店(课本案例)
  11. 嵌入式开发中常用的软件设计模式
  12. 怎样免费将Word导出为PDF格式?
  13. 雅虎新频道Buzz截图,Digg竞争者?
  14. 应用宝apk_应用商店抽成五五开,热门新游戏揭竿而起
  15. centos mysql部署_CentOS下MySQL 8.0安装部署,超详细!
  16. 少儿编程微课程7:星际飞行单机版
  17. public protected private
  18. html5网页制作代码-我的班级网页 HTML期末大作业 学校班级网页制作模板
  19. 【VMCloud云平台】SCAP(四)租户(一)
  20. 3D视觉(二):单目摄像头的标定与校正

热门文章

  1. 专业英语笔记:Spring框架
  2. 【codevs1040】【01NOIPTG】统计单词个数,字符串的划分DP
  3. 【Linux使用】Centos 7 设置机器名/激活网络接口
  4. 【英语学习】【医学】Unit 10 Tumor
  5. Pentium II Pentium III架构/微架构/流水线 (5) - MMX
  6. python Django之Web框架本质 (2)
  7. 手把手教学:Nginx的安装
  8. 让服务程序进入demon模式的代码
  9. in use 大学英语4word_考研英语真题干货 | run on
  10. SVN中Branch/tag的比较