Docker 在kubernetes中运行的命令挂起

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

我需要在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 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版本中