首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行舱中添加Sidecar容器

在运行舱中添加Sidecar容器
EN

Stack Overflow用户
提问于 2020-11-05 13:34:47
回答 2查看 6.2K关注 0票数 2

我有一个供应商应用程序的舵手部署脚本,我们正在操作。对于日志记录解决方案,我需要为fluentbit添加一个sidecar容器,以将日志推送到聚合日志服务器(本例中为splunk)。

现在,为了定义这个sidecar容器,我希望避免更改供应商定义的部署脚本。相反,我想要一些替代的方式来将侧集装箱附加到运行舱上。

到目前为止,我已经了解到可以在相同的部署脚本(部署配置)中定义sidecar容器。

EN

回答 2

Stack Overflow用户

发布于 2020-11-16 08:11:25

回答意见中的问题:

谢谢大卫。这必须在部署之前完成。我想知道我是否可以将一个侧面容器附加到一个已经部署好的(正在运行的)吊舱。

无法将附加容器附加到正在运行的Pod.上您可以更新(修补程序)资源定义。这将强制使用新规范重新创建资源。

关于这个特性,有一个github问题,最后有以下评论:

在讨论了SIG的目标之后,明确的共识是,容器列表在pod规范中应该保持不变的。#27140将由kubernetes/社区#649更好地解决,它允许在现有的pod中运行一个短暂的调试容器。这将不会得到执行。 -- https://github.com/kubernetes/kubernetes/issues/37838

回答帖子的部分:

现在,为了定义这个sidecar容器,我希望避免更改供应商定义的部署脚本。相反,我想要一些替代的方式来将侧集装箱附加到运行舱上。

下面我已经包含了两种方法来向Deployment中添加一个sidecar。这两种方法都将重新加载Pods,以符合新的规范:

  • 使用$ kubectl patch
  • 编辑Helm图表并使用$ helm upgrade

在这两种情况下,我鼓励您检查Kubernetes如何处理其资源的更新。您可以通过以下链接阅读更多内容:

使用$ kubectl patch

完全避免编辑Helm图表的方法是使用:

  • $ kubectl patch

此方法将“修补”现有的Deployment/StatefulSet/Daemonset并添加sidecar。这种方法的缺点是它不像Helm那样自动化,您需要为每个资源(每个Deployment/Statefulset/Daemonset等)创建一个“修补程序”。如果有来自其他来源(如Helm )的任何更新,此“修补程序”将被覆盖。

有关更新API对象的文档:

编辑Helm图表并使用$ helm upgrade

此方法将需要编辑Helm图表。所做的更改,如添加一个侧文件,将在更新过程中持续进行。在进行更改之后,您将需要使用$ helm upgrade RELEASE_NAME CHART

你可以在这里读到更多关于它的内容:

票数 2
EN

Stack Overflow用户

发布于 2022-06-28 07:29:42

正如杜威德-克鲁克所提到的,kubernetes资源是不可变的。因此,修改荚描述将导致容器重新启动。

您可以使用kubectl patch命令修改pod,不要忘记重新应用。必要时打补丁。

或者,以下两个选项将注入侧chart,而不必修改/叉上游图表或损坏已部署的重发源。

#1变异接纳控制器

变异接纳控制器(web钩子)可以修改资源(请参阅https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/ )。

您可以使用像opa这样的通用框架。或者像流动侧喷射器这样的特定网络钩子(未测试)

#2支持任意的方向盘

您可以向图表主程序提交一个功能请求,以支持任意侧插入,如普罗米修斯所示,请参阅https://stackoverflow.com/a/62910122/1260896

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64698328

复制
相关文章

相似问题

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