Bal*_*nat 3 redis redis-cli kubectl
我想启动一个容器并直接redis-cli
在里面交互运行。由于某种原因,在我的尝试中,输入总是被忽略。
启动交互式 shell,然后手动启动程序即可:
# in my local shell:
$ kubectl run redis-cli --image redis:latest --attach --leave-stdin-open --rm -it --command -- bash
# then in container shell:
root@redis-cli:/data# redis-cli -h redis.example.com
# now the redis-cli shell is open:
redis.example.com:6379>
Run Code Online (Sandbox Code Playgroud)
如何将其合并到一个命令中以直接进入redis-cli
shell?我已尝试以下操作,但没有看到任何提示,并且我的所有输入都被忽略。我什至无法按 ctrl-C 或 ctrl-D 退出它。
# in my local shell:
$ kubectl run redis-cli --image redis:latest --attach --leave-stdin-open --rm -it --command -- bash
# then in container shell:
root@redis-cli:/data# redis-cli -h redis.example.com
# now the redis-cli shell is open:
redis.example.com:6379>
Run Code Online (Sandbox Code Playgroud)
如果我执行 a --stat
,我会看到命令输出。如果我执行 a ping
,我会看到 ping 到达 Redis 服务器(使用monitor
另一个容器),但我从未看到任何输出,并且 pod 在终止之前进入CrashLoopBackOff
。
此时,我不确定此行为是否特定于redis-cli
图像redis
,或者此行为是否与其他交互式程序相同(好吧,至少bash
看起来按预期工作)。
将其发布为社区 wiki,随意编辑和扩展
redis-cli
我找到了一个解决方法,很可能这与容器及其实现有关。使用不同的图像观察到相同的行为redis-cli
-docker.io/bitnami/redis:6.2.5-debian-10-r34
当运行问题中的命令时,在创建 pod 后redis-cli
,会显示以下消息:
$ kubectl run redis-cli3 --image redis:latest --attach --leave-stdin-open --env REDIS_PASSWORD=$REDIS_PASSWORD --rm -it -- redis-cli -h redis-master -a $REDIS_PASSWORD
If you don't see a command prompt, try pressing enter.
Run Code Online (Sandbox Code Playgroud)
它应该enter
作为钥匙,但它不起作用。
令人惊讶的是shift + r
,组合被接受并显示redis-cli
已连接。
归档时间: |
|
查看次数: |
12521 次 |
最近记录: |