如何使用Helm更新在GKE群集上运行的工作负载的配置毫米



我有一个与Prometheus和Prometheus Alert Manager一起运行的GKE群集作为状态集。每个状态集都在运行收集指标的POD。Prometheus和(AlertManager.yml(for Alert Manager。

现在,我有一项新任务将警报发送到Slack。我已经更新了nerver.yaml,rules.yaml和alertmanager.yml,以便将警报发送到Slack。

我需要在使用Helm中使用GKE中运行工作负载和PODS的集群上更新Prometheus和Alert Manager的所有.YAML文件。有人可以让我知道我该如何使用掌舵吗?

我还建议您使用Helm来管理您的服务,但您可以完全不需要使用Helm。

首先,您可以使用apply

kubectl apply -f fileName.yaml

但这没有更新吊舱内加载的配置毫米信息,您需要重新启动豆荚才能查看更改,因为您有一些不同的选项:

选项1

手动操作。

删除POD,它使部署控制器力量创建新的功能以使您在部署定义上拥有复制品计数,并且PODS启动时将其采用新的配置毫米。

kubectl delete pod <pod-name>

在该解决方案上,您一一删除豆荚。

降低/向上部署,您可以手动缩小到0的部署并再次向上缩小以创建使用新的Cornersiveap的新POD。

kubectl scale deployment <deployment-name> --replicas=0 && kubectl scale deployment <deployment-name> --replicas=2

使用该解决方案,您无需一个一个一个删除。

选项2

您可以在部署上使用env var定义来强制滚动更新,此变量不在吊舱内使用,但是您可以通过编辑部署来使用Ti来填充滚动更新。

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: helloworld
  name: helloworld
spec:
  replicas: 1
  selector:
    matchLabels:
      run: helloworld
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        run: helloworld
    spec:
      containers:
      - image: helloworld
        name: helloworld
        env:
        - name: RELOAD_VAR
          value: TAG_VAR0

每次更改RELOAD_VAR值时,部署将执行滚动更新创建新的POD并加载新的cornercerap

选项3

以一种更自动化的方式,您可以使用一种特殊的控制器,该控制器使用注释来观察ConfigMap上的更改,然后重新加载与该确认的正确注释的POD。

您可以查看https://github.com/stakater/reloader,您只需要在群集上部署它并将注释放在部署中。

kind: Deployment
metadata:
  annotations:
    configmap.reloader.stakater.com/reload: "foo-configmap"
spec:
  template:
    metadata:

每当您更改配置时,无论您如何执行操作,控制器都会自动检测更改并自动重新加载豆荚。

最新更新