当前位置: 首页 > 知识库问答 >
问题:

库伯内特斯的热舱重组

史默
2023-03-14

我已经在Kubernetes上部署了Prometheus,并提供了Prometheus.yml配置文件作为配置映射资源。该文件作为卷装入普罗米修斯吊舱中。

在集群中更改配置映射后,我用一个空POST请求点击Prometheus服务器endpoint,以便重新加载它(如文档中所述)

然而,当我对配置映射进行更改并重新部署它时,我会经历大约30秒的“滞后”,直到prometheus.yml文件在pod中更新。

我在这里读到,这是意料之中的。

然而,有些项目试图补救这一点,例如

  • https://github.com/pusher/wave
  • https://github.com/stakater/Reloader
  • https://github.com/jimmidyson/configmap-reload

据我所知,这些会杀死Pod并替换它们,以便更新配置。

我的问题是,有没有办法进行“热”重构?

本质上加快了pod内的按需音量更新,而不需要杀死任何pod。

共有1个答案

缪晋
2023-03-14

我现在正在使用reloader,并且Pod总是被杀死,但是在您更改相关的配置图后,它们会立即重新创建。

但您无法避免这样一个事实,即您需要杀死pod才能使用新配置重新装载卷,而且如果您能够在不停止容器内的主进程的情况下加载新配置,这也取决于您的工作负载。

 类似资料:
  • 我有一个简单的容器,它由安装在阿尔卑斯山上的OpenLDAP组成。它被安装为以非root用户身份运行。我能够使用我的本地Docker引擎运行容器而没有任何问题。但是,当我将其部署到我们的库伯内特斯系统时,它几乎立即被OOMKill杀死。我尝试在没有任何更改的情况下增加内存。我还查看了pod的内存使用情况,没有发现任何异常。 服务器启动为slapd-d debug-hldap://0.0.0.0:1

  • 我正在VM中运行一个单节点Kubernetes集群,用于开发和测试。我使用Rancher Kubernetes引擎(RKE,Kubernetes版本1.18)部署它,并使用MetalLB启用LoadBalancer服务类型。Traefik是2.2版,通过官方掌舵图部署(https://github.com/containous/traefik-helm-chart)。我部署了几个虚拟容器来测试设置

  • 我是库伯内特斯的新手。我已经在Oracle虚拟盒管理器上设置了3个Ubuntu 20.04.2 LTS虚拟机。 根据以下文档,我已经在所有3个虚拟机中安装了docker、kubelet、kubeadm和kubectl https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 我使用以

  • 我的kubernetes部署中有一个多容器吊舱: java redis nginx 对于每一个集装箱,普罗米修斯出口商也有一个集装箱。 问题是,如果annotations部分只支持每个pod一个端口,我如何向Prometheus公开这些端口? 但是我需要这样的东西: 也许还有其他方法可以从我的多容器pod中获取所有指标?提前感谢您的帮助。

  • 我在调查小虫。我有我豆荚名字的日志。那个吊舱已经不存在了,它被另一个(配置不同的)取代了。新pod驻留在与旧pod相同的名称空间、复制控制器和服务中。 命令,如 仅使用当前的吊舱(活动或停止)。 我怎么能得到更多关于旧豆荚的细节?我想看看 创建它们的时间 它们在创建时具有哪些环境变量 停止的原因和时间

  • 我假设没有愚蠢的问题,所以这里有一个我找不到直接答案的问题。 现在的情况 我目前有一个运行1.15的Kubernetes集群。AKS上的x,通过Terraform部署和管理。AKS最近宣布Azure将在AKS上停用Kubernetes的1.15版本,我需要将集群升级到1.16或更高版本。现在,据我所知,直接在Azure中升级集群不会对集群的内容产生任何影响,即节点、豆荚、秘密和当前在那里的所有其他