首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Kubernetes中创建后置容器?

如何在Kubernetes中创建后置容器?
EN

Stack Overflow用户
提问于 2017-05-30 13:34:54
回答 3查看 11.2K关注 0票数 19

我正试图在K8s上创建一个redis集群。我需要一个侧面容器来创建集群后,所需数量的红色容器在线。

我有两个集装箱,redis和一个侧面。我在一个带有6个副本的statefulset中运行它们。我需要侧卡容器只对每个副本运行一次,然后终止。它是这样做的,但K8s一直在重新运行侧车。

我尝试在容器级别设置一个restartPolicy,但是它是无效的。K8s似乎只在荚级支持这一点。但是,我不能使用它,因为我希望重新启动redis容器,而不是侧服务器。

有类似于post-init container的东西吗?我的sidecar需要在主容器之后运行redis,以使它加入集群。所以init container是没用的。

用K8s 1.6解决这个问题的最好方法是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-06-02 16:19:49

一个更好的答案就是让侧车进入一个无限的睡眠循环。如果它永远不会退出,它就永远不会继续被重新启动。可以使用资源限制来确保对集群的影响最小。

票数 3
EN

Stack Overflow用户

发布于 2017-05-31 14:58:46

我建议你使用Kubernetes Jobs:

https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

这类作业将一直运行到完成一次。在此工作中,您可以尝试检测是否所有所需的节点都可用,以便形成群集。

票数 8
EN

Stack Overflow用户

发布于 2022-12-01 18:26:40

添加postStart作为此问题的可选答案:

https://kubernetes.io/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/#define-poststart-and-prestop-handlers

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: lifecycle-demo
spec:
  containers:
  - name: lifecycle-demo-container
    image: nginx
    lifecycle:
      postStart:
        exec:
          command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44263791

复制
相关文章

相似问题

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