Kubernetes通过一行shell命令给pod中的zk节点添加权限
问题
一个需求:需要写一个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节点添加权限相关推荐
- Linux在文件第一行添加字符,使用shell命令给文件中每一行的前面、后面、指定列添加字符...
shell给一个文件中的每一行开头插入字符的方法:awk '{print "X"$0}' fileName shell给一个文件中的每一行结尾插入字符的方法:awk '{print ...
- python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?
原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...
- shell命令卸载mysql_centos8中的MySQL卸载和安装
centos8中的MySQL卸载和安装 前言 前几天在自己的服务器上安装了一个NDB集群[而且还没有成功] 放弃治疗后用一台没有mysql的服务器实现了单机版本的集群. 本来以为这事到这就结束了,结果 ...
- linux vim 执行shell命令行,Linux中vim和shell
在Linux系统中一切皆文件,配置服务其实就是在修改其配置文件的参数,而在日常文件中肯定少不了的就是编辑文档,这就离不开vim,而vim之所以能够得到广大厂商的青睐与用户的认可,原因在于vim编辑器中 ...
- dpi shell命令 安卓_android 中 dumpsys 命令使用
adb shell dumpsys,默认打印出当前系统所有 service 信息,在后面可加上具体的服务名 需要列出当前运行的服务,可运行: adb shell dumpsys | findstr D ...
- python获取shell输出及返回码_如何执行shell命令获取Python中命令后的输出和pwd
我将stdout重定向到pwd命令的stderr.如果stdout为空且stderr不是路径,那么stderr是命令的错误 import subprocess as sub def execv(com ...
- 一行shell命令实现代码行数统计
一行命令实现代码行数统计 1. 基本版 find . -name "*.cpp"|xargs wc -l|grep "total"|awk '{prin ...
- (sudo命令)linux中给普通用户添加root权限
1 打开/etc/sudoers文件 vi /etc/sudoers 2 在root ALL=(ALL) ALL下方添加一行代码 例如 zhangsan=(ALL)ALL 3保存退出以后使用sourc ...
- C#中操作XML (节点添加,修改,删除完整版)
创建xml http://www.cnblogs.com/bingzisky/archive/2008/08/26/1276875.html 1.新建一个XML文件(bookstore.xml)如下: ...
最新文章
- 盛大文学推出“一人一书”计划,发布电子书战略
- 用户表单事件(focus事件)
- windows下程序开机自启动(任务计划程序)
- IIS 8.5配置.net网站[花了半个多小时]
- 安卓连接mysql代码_用Eclipse开发android,怎么连接到数据库,最好有详细程序代码...
- Spring Cloud Zuul网关(快速搭建)
- ubuntu虚拟机安装Gitlab后出现“Whoops, GitLab is taking too much time to respond.”
- 从DOM到虚拟DOM——前端DOM发展史、性能与产能双赢背后的思考
- dbf文件转excel_Excel批量转PDF,关键一步不能忘
- (JS)蔚蓝网上书店(课本案例)
- 嵌入式开发中常用的软件设计模式
- 怎样免费将Word导出为PDF格式?
- 雅虎新频道Buzz截图,Digg竞争者?
- 应用宝apk_应用商店抽成五五开,热门新游戏揭竿而起
- centos mysql部署_CentOS下MySQL 8.0安装部署,超详细!
- 少儿编程微课程7:星际飞行单机版
- public protected private
- html5网页制作代码-我的班级网页 HTML期末大作业 学校班级网页制作模板
- 【VMCloud云平台】SCAP(四)租户(一)
- 3D视觉(二):单目摄像头的标定与校正
热门文章
- 专业英语笔记:Spring框架
- 【codevs1040】【01NOIPTG】统计单词个数,字符串的划分DP
- 【Linux使用】Centos 7 设置机器名/激活网络接口
- 【英语学习】【医学】Unit 10 Tumor
- Pentium II Pentium III架构/微架构/流水线 (5) - MMX
- python Django之Web框架本质 (2)
- 手把手教学:Nginx的安装
- 让服务程序进入demon模式的代码
- in use 大学英语4word_考研英语真题干货 | run on
- SVN中Branch/tag的比较