首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在kubernetes中运行的命令挂起

在kubernetes中运行的命令挂起
EN

Stack Overflow用户
提问于 2020-06-25 16:46:22
回答 2查看 2K关注 0票数 4

我需要在kubernetes的clickhouse数据库中运行一个命令。

当我用docker尝试它时,它工作得很好:

docker run -it yandex/clickhouse-client -h 172.19.0.1 --database=test --query="SYSTEM RELOAD DICTIONARIES"

但是当我在kub中运行它时:

代码语言:javascript
复制
kubectl run  --quiet -it --rm  clickhouse-client --image=yandex/clickhouse-client -- -h clickhouse-server  --database=test --query="SYSTEM RELOAD DICTIONARIES"

第二个命令挂起。pod在CrashLoopBackOff中,容器回退重启失败/容器日志中包含查询结果。

为什么结果没有刷新到tty?

此命令适用于我:

kubectl run busybox --quiet -it --rm --restart=Never --image=busybox -- nslookup foobar

click-house客户端有什么不同?

EN

回答 2

Stack Overflow用户

发布于 2020-06-28 15:27:46

@ogbofjnr这可能是因为您的查询一完成,pod就会被终止。Kubernetes将重新启动pod,并在执行查询后再次终止。这就是为什么你会看到一个重启循环。

对于繁忙的机器,入口点是一个长时间运行的命令,如睡眠3600 https://github.com/kubernetes/kubernetes/blob/master/hack/testdata/recursive/pod/pod/busybox.yaml#L10-L12

如果您的想法是按计划运行查询,那么您应该尝试类似的方法或尝试Kubernetes cron作业。

票数 1
EN

Stack Overflow用户

发布于 2020-06-28 18:16:27

你的pod一运行就会被杀死,我建议你使用yaml文件创建pod,并在yaml文件中添加命令,然后在DNS解析器中验证您的clickhouse-server

代码语言:javascript
复制
---
......
      containers:
      - name: clickhouse-client
        image: yandex/clickhouse-client
        command:
          - "-h"
          - "clickhouse-server"
          - "--database=test"
          - "--query='SYSTEM RELOAD DICTIONARIES'"
        resources: {}
........
---
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62571379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档