Docker 在kubernetes中运行的命令挂起
我需要在kubernetes的clickhouse数据库中运行一个命令 当我尝试使用docker时,它工作正常:Docker 在kubernetes中运行的命令挂起,docker,kubernetes,clickhouse,Docker,Kubernetes,Clickhouse,我需要在kubernetes的clickhouse数据库中运行一个命令 当我尝试使用docker时,它工作正常: docker-run-it-yandex/clickhouse-client-h 172.19.0.1--database=test--query=“系统重新加载字典” 但当我用kub运行它时: kubectl run --quiet -it --rm clickhouse-client --image=yandex/clickhouse-client -- -h clickho
docker-run-it-yandex/clickhouse-client-h 172.19.0.1--database=test--query=“系统重新加载字典”
但当我用kub运行它时:
kubectl run --quiet -it --rm clickhouse-client --image=yandex/clickhouse-client -- -h clickhouse-server --database=test --query="SYSTEM RELOAD DICTIONARIES"
第二个命令挂起。
pod处于紧急回退状态,回退重新启动失败的容器/
容器日志中包含查询结果
为什么不将结果刷新到tty
此命令适用于我:
kubectl运行busybox--quiet-it--rm--restart=Never--image=busybox--nslookup foobar
click house client有什么区别?@ogbofjnr这可能是因为一旦查询完成,pod就会被杀死。Kubernetes将重新启动pod,它将在执行查询后再次死亡。这就是为什么您会看到一个重启循环 对于busybox,entrypoint是一个长时间运行的命令,如sleep3600
如果要按计划运行查询,您应该尝试类似的方法,或者尝试Kubernetes cron作业。您的pod在运行时就会被杀死,我建议您使用文件yaml创建pod,并在yaml文件中添加命令,然后在DNS解析器中验证clickhouse服务器
---
......
containers:
- name: clickhouse-client
image: yandex/clickhouse-client
command:
- "-h"
- "clickhouse-server"
- "--database=test"
- "--query='SYSTEM RELOAD DICTIONARIES'"
resources: {}
........
---
您能否确保
clickhouse server
DNS查找在kubernetes集群内正常工作?请运行kubectl run busybox--quiet-it--rm--restart=Never--image=busybox--nslookup clickhouse server
如果删除--quiet
选项,也许你可以看到clickhouse client
@ogbofjnr显示的错误消息,当你的问题得到解决时,你在答案下的评论中指出了它。我恳请你在评论之外创建一个答案,并给出解释。结果是问题在kub版本中,结果是问题在kub版本中