首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在舵图中执行命令

在舵图中执行命令
EN

Stack Overflow用户
提问于 2020-07-24 22:03:11
回答 1查看 3.8K关注 0票数 3

我有一个卡桑德拉的Helm Chart,它运行得很好,我可以连接到它并运行cqlsh命令。

我想在图表中添加一个Helm Hook。我已经设法做到了,但是,我不能在容器中执行cqlsh。这是我希望在post-install阶段执行的Kubernetes作业。

代码语言:javascript
复制
apiVersion: batch/v1
kind: Job
metadata:
  name: my-job
spec:
  template:
    metadata:
     name: hook-job
     annotations:
       "helm.sh/hook": post-install
       "helm.sh/hook-delete-policy": hook-succeeded
   spec:
     containers:
     - name: cqlsh-cmd
       image: <cassandra-image>
       command: ["bin/sh", "-c", "cqlsh"]
     restartPolicy: OnFailure

但是,找不到cqlsh命令。

一般来说,这看起来很奇怪,我不得不重用我在Helm Chart中定义的同一个容器。我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2020-07-31 01:25:31

此时,您的pod/容器可能不会打开。在post生命周期下使用它。

代码语言:javascript
复制
  spec:
    containers:
    - name: cqlsh-cmd
      image: <cassandra-image>
      lifecycle:
        postStart:
          exec:
            command: ["/bin/sh", "-c", "
                set -x\n
                while true;\n
                do\n
                  echo 'looking cassandra...,'\n
                  timeout 1 bash -c 'cat < /dev/null > /dev/tcp/localhost/9042'\n
                  exitCode=$?\n

                  if [ $exitCode = 0 ]; then\n
                    cqlsh /** your command **/ \n
                    break;\n
                  fi\n
                  sleep 1s\n
                done\n
              "]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63075208

复制
相关文章

相似问题

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