我在测试时执行一项重复性任务,需要连接到 cassandra pod 并运行几个 CQL 查询。
这是“手动”方法:
在集群控制器节点上,我使用 kubectl 在 pod 上执行 shell:
kubectl exec pod/my-app-cassandra-pod-name -it --namespace myns -- /bin/bash
进入 pod 后,我执行 cqlsh:,
cqlsh $(hostname -i) -u myuser
然后以交互方式输入密码
我以交互方式执行 cql 查询
现在,我想要一个 bash 脚本来自动执行此操作。我的目的是通过 kubectl exec 直接运行 cqlsh。
我遇到的问题是,显然我无法在 kubectl exec 的“命令”部分中使用 shell 变量。我需要 shell 变量来存储 a) pod 的 IP、b) 作为第一个查询的输入的 id,以及 c) 中间查询结果(后两个尚未添加到脚本中)。
到目前为止,我使用的是虚拟 CQL 查询:
#!/bin/bash
CASS_IP=$(kubectl exec pod/my-app-cassandra-pod-name -it --namespace myns -- /usr/bin/hostname -i)
echo $CASS_IP # This prints out the IP address just …
Run Code Online (Sandbox Code Playgroud)